123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
- <!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
- <!-- Title: state transitions Pages: 1 -->
- <svg width="812pt" height="394pt"
- viewBox="0.00 0.00 812.00 394.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 390)">
- <title>state transitions</title>
- <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-390 808,-390 808,4 -4,4"/>
- <g id="clust1" class="cluster">
- <title>cluster__Dialing</title>
- <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 784,-8 784,-8 790,-8 796,-14 796,-20 796,-20 796,-335 796,-335 796,-341 790,-347 784,-347 784,-347 20,-347 20,-347 14,-347 8,-341 8,-335 8,-335 8,-20 8,-20 8,-14 14,-8 20,-8"/>
- <text text-anchor="start" x="383.6682" y="-328.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Dialing</text>
- </g>
- <g id="clust2" class="cluster">
- <title>cluster__Dialing_Redialer</title>
- <polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="445,-16 445,-309 788,-309 788,-16 445,-16"/>
- <text text-anchor="start" x="594.1668" y="-290.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Redialer</text>
- </g>
- <g id="clust3" class="cluster">
- <title>cluster__Dialing_Dialer</title>
- <polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-309 437,-309 437,-16 24,-16"/>
- <text text-anchor="start" x="215.3376" y="-290.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Dialer</text>
- </g>
- <!-- __initial -->
- <g id="node1" class="node">
- <title>__initial</title>
- <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-380.5" rx="5.5" ry="5.5"/>
- </g>
- <!-- _Dialing -->
- <!-- __initial->_Dialing -->
- <g id="edge1" class="edge">
- <title>__initial->_Dialing</title>
- <path fill="none" stroke="#000000" d="M16,-374.9533C16,-370.7779 16,-364.5043 16,-357.0332"/>
- <polygon fill="#000000" stroke="#000000" points="19.5001,-356.9971 16,-346.9971 12.5001,-356.9972 19.5001,-356.9971"/>
- <text text-anchor="middle" x="17.3895" y="-358" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
- </g>
- <!-- _Dialing_Redialer -->
- <!-- _Dialing_Redialer_initial -->
- <g id="node4" class="node">
- <title>_Dialing_Redialer_initial</title>
- <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="559" cy="-265.5" rx="5.5" ry="5.5"/>
- </g>
- <!-- _Dialing_Redialer_WaitForRedial -->
- <g id="node6" class="node">
- <title>_Dialing_Redialer_WaitForRedial</title>
- <polygon fill="transparent" stroke="transparent" stroke-width="2" points="614.5,-178 503.5,-178 503.5,-142 614.5,-142 614.5,-178"/>
- <text text-anchor="start" x="514.8342" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">WaitForRedial ✓</text>
- <path fill="none" stroke="#000000" stroke-width="2" d="M515.8333,-143C515.8333,-143 602.1667,-143 602.1667,-143 607.8333,-143 613.5,-148.6667 613.5,-154.3333 613.5,-154.3333 613.5,-165.6667 613.5,-165.6667 613.5,-171.3333 607.8333,-177 602.1667,-177 602.1667,-177 515.8333,-177 515.8333,-177 510.1667,-177 504.5,-171.3333 504.5,-165.6667 504.5,-165.6667 504.5,-154.3333 504.5,-154.3333 504.5,-148.6667 510.1667,-143 515.8333,-143"/>
- </g>
- <!-- _Dialing_Redialer_initial->_Dialing_Redialer_WaitForRedial -->
- <g id="edge2" class="edge">
- <title>_Dialing_Redialer_initial->_Dialing_Redialer_WaitForRedial</title>
- <path fill="none" stroke="#000000" d="M559,-259.8288C559,-255.1736 559,-248.4097 559,-242.5 559,-242.5 559,-242.5 559,-195.5 559,-193.1079 559,-190.6252 559,-188.1342"/>
- <polygon fill="#000000" stroke="#000000" points="562.5001,-188.0597 559,-178.0598 555.5001,-188.0598 562.5001,-188.0597"/>
- <text text-anchor="middle" x="560.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
- </g>
- <!-- _Dialing_Redialer_RedialDigits -->
- <g id="node5" class="node">
- <title>_Dialing_Redialer_RedialDigits</title>
- <polygon fill="transparent" stroke="transparent" stroke-width="2" points="568.5,-60 483.5,-60 483.5,-24 568.5,-24 568.5,-60"/>
- <text text-anchor="start" x="494.5026" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">RedialDigits</text>
- <path fill="none" stroke="#000000" stroke-width="2" d="M495.8333,-25C495.8333,-25 556.1667,-25 556.1667,-25 561.8333,-25 567.5,-30.6667 567.5,-36.3333 567.5,-36.3333 567.5,-47.6667 567.5,-47.6667 567.5,-53.3333 561.8333,-59 556.1667,-59 556.1667,-59 495.8333,-59 495.8333,-59 490.1667,-59 484.5,-53.3333 484.5,-47.6667 484.5,-47.6667 484.5,-36.3333 484.5,-36.3333 484.5,-30.6667 490.1667,-25 495.8333,-25"/>
- </g>
- <!-- _Dialing_Redialer_RedialDigits->_Dialing_Redialer_RedialDigits -->
- <g id="edge3" class="edge">
- <title>_Dialing_Redialer_RedialDigits->_Dialing_Redialer_RedialDigits</title>
- <path fill="none" stroke="#000000" d="M568.7986,-46.856C581.0518,-46.6655 590.5,-45.0469 590.5,-42 590.5,-39.8577 585.8289,-38.4214 578.7961,-37.6913"/>
- <polygon fill="#000000" stroke="#000000" points="578.9749,-34.1959 568.7986,-37.144 578.5923,-41.1855 578.9749,-34.1959"/>
- <text text-anchor="start" x="590.5" y="-39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[c < numdigits(p)]^dial(digit(p, c+1))   </text>
- </g>
- <!-- _Dialing_Redialer_RedialDigits->_Dialing_Redialer_WaitForRedial -->
- <g id="edge4" class="edge">
- <title>_Dialing_Redialer_RedialDigits->_Dialing_Redialer_WaitForRedial</title>
- <path fill="none" stroke="#000000" d="M483.4216,-59.8718C478.3898,-64.5715 475,-70.3799 475,-77.5 475,-124.5 475,-124.5 475,-124.5 475,-130.7463 482.9804,-136.5147 494.0215,-141.5063"/>
- <polygon fill="#000000" stroke="#000000" points="492.8568,-144.811 503.4386,-145.3373 495.4946,-138.327 492.8568,-144.811"/>
- <text text-anchor="start" x="475" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[c == numdigits(p)]   </text>
- </g>
- <!-- _Dialing_Redialer_WaitForRedial->_Dialing_Redialer_RedialDigits -->
- <g id="edge5" class="edge">
- <title>_Dialing_Redialer_WaitForRedial->_Dialing_Redialer_RedialDigits</title>
- <path fill="none" stroke="#000000" d="M602.0313,-141.6979C606.8125,-137.0752 610,-131.4043 610,-124.5 610,-124.5 610,-124.5 610,-77.5 610,-69.0842 595.5133,-61.5359 578.5722,-55.5861"/>
- <polygon fill="#000000" stroke="#000000" points="579.5769,-52.2323 568.9843,-52.4497 577.4005,-58.8854 579.5769,-52.2323"/>
- <text text-anchor="start" x="610" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">redial [c == 0]/p = lp ^dial(digit(lp, 1))   </text>
- </g>
- <!-- _Dialing_Dialer -->
- <!-- _Dialing_Dialer_initial -->
- <g id="node8" class="node">
- <title>_Dialing_Dialer_initial</title>
- <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="80" cy="-265.5" rx="5.5" ry="5.5"/>
- </g>
- <!-- _Dialing_Dialer_WaitForDial -->
- <g id="node10" class="node">
- <title>_Dialing_Dialer_WaitForDial</title>
- <polygon fill="transparent" stroke="transparent" stroke-width="2" points="128.5,-178 31.5,-178 31.5,-142 128.5,-142 128.5,-178"/>
- <text text-anchor="start" x="42.505" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">WaitForDial ✓</text>
- <path fill="none" stroke="#000000" stroke-width="2" d="M43.8333,-143C43.8333,-143 116.1667,-143 116.1667,-143 121.8333,-143 127.5,-148.6667 127.5,-154.3333 127.5,-154.3333 127.5,-165.6667 127.5,-165.6667 127.5,-171.3333 121.8333,-177 116.1667,-177 116.1667,-177 43.8333,-177 43.8333,-177 38.1667,-177 32.5,-171.3333 32.5,-165.6667 32.5,-165.6667 32.5,-154.3333 32.5,-154.3333 32.5,-148.6667 38.1667,-143 43.8333,-143"/>
- </g>
- <!-- _Dialing_Dialer_initial->_Dialing_Dialer_WaitForDial -->
- <g id="edge6" class="edge">
- <title>_Dialing_Dialer_initial->_Dialing_Dialer_WaitForDial</title>
- <path fill="none" stroke="#000000" d="M80,-259.8288C80,-255.1736 80,-248.4097 80,-242.5 80,-242.5 80,-242.5 80,-195.5 80,-193.1079 80,-190.6252 80,-188.1342"/>
- <polygon fill="#000000" stroke="#000000" points="83.5001,-188.0597 80,-178.0598 76.5001,-188.0598 83.5001,-188.0597"/>
- <text text-anchor="middle" x="81.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
- </g>
- <!-- _Dialing_Dialer_DialDigits -->
- <g id="node9" class="node">
- <title>_Dialing_Dialer_DialDigits</title>
- <polygon fill="transparent" stroke="transparent" stroke-width="2" points="140,-60 68,-60 68,-24 140,-24 140,-60"/>
- <text text-anchor="start" x="78.6734" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">DialDigits</text>
- <path fill="none" stroke="#000000" stroke-width="2" d="M80.3333,-25C80.3333,-25 127.6667,-25 127.6667,-25 133.3333,-25 139,-30.6667 139,-36.3333 139,-36.3333 139,-47.6667 139,-47.6667 139,-53.3333 133.3333,-59 127.6667,-59 127.6667,-59 80.3333,-59 80.3333,-59 74.6667,-59 69,-53.3333 69,-47.6667 69,-47.6667 69,-36.3333 69,-36.3333 69,-30.6667 74.6667,-25 80.3333,-25"/>
- </g>
- <!-- _Dialing_Dialer_DialDigits->_Dialing_Dialer_DialDigits -->
- <g id="edge7" class="edge">
- <title>_Dialing_Dialer_DialDigits->_Dialing_Dialer_DialDigits</title>
- <path fill="none" stroke="#000000" d="M140.25,-46.875C152.3333,-46.875 162,-45.25 162,-42 162,-39.7656 157.431,-38.2993 150.6489,-37.6011"/>
- <polygon fill="#000000" stroke="#000000" points="150.3996,-34.0861 140.25,-37.125 150.0794,-41.0788 150.3996,-34.0861"/>
- <text text-anchor="start" x="162" y="-39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dial(d:int) [c < 10]/lp = lp * 10 + d c += 1  ^out.out(d)   </text>
- </g>
- <!-- _Dialing_Dialer_DialDigits->_Dialing_Dialer_WaitForDial -->
- <g id="edge8" class="edge">
- <title>_Dialing_Dialer_DialDigits->_Dialing_Dialer_WaitForDial</title>
- <path fill="none" stroke="#000000" d="M74.4875,-60.3273C70.0916,-65.167 67,-70.9124 67,-77.5 67,-124.5 67,-124.5 67,-124.5 67,-126.9367 67.2734,-129.4132 67.7409,-131.8668"/>
- <polygon fill="#000000" stroke="#000000" points="64.4295,-133.0164 70.5523,-141.6629 71.1579,-131.0853 64.4295,-133.0164"/>
- <text text-anchor="start" x="67" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">[c == 10]   </text>
- </g>
- <!-- _Dialing_Dialer_WaitForDial->_Dialing_Dialer_DialDigits -->
- <g id="edge10" class="edge">
- <title>_Dialing_Dialer_WaitForDial->_Dialing_Dialer_DialDigits</title>
- <path fill="none" stroke="#000000" d="M128.5115,-146.0105C144.3736,-139.9675 158,-132.4599 158,-124.5 158,-124.5 158,-124.5 158,-77.5 158,-69.8638 154.1829,-63.7787 148.5785,-58.9596"/>
- <polygon fill="#000000" stroke="#000000" points="150.2577,-55.8692 140.0188,-53.1463 146.3249,-61.66 150.2577,-55.8692"/>
- <text text-anchor="start" x="158" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dial(d:int), redial [c == 0]/lp = d c = 1  ^out.out(d)   </text>
- </g>
- <!-- _Dialing_Dialer_WaitForDial->_Dialing_Dialer_WaitForDial -->
- <g id="edge9" class="edge">
- <title>_Dialing_Dialer_WaitForDial->_Dialing_Dialer_WaitForDial</title>
- <path fill="none" stroke="#000000" d="M128.7649,-164.8167C141.1797,-164.5001 150.5,-162.8945 150.5,-160 150.5,-157.9648 145.8922,-156.5668 138.8407,-155.8061"/>
- <polygon fill="#000000" stroke="#000000" points="138.9618,-152.307 128.7649,-155.1833 138.5299,-159.2937 138.9618,-152.307"/>
- <text text-anchor="start" x="150.5" y="-157" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dial(d:int), not redial [c < 10]/c += 1 lp = lp * 10 + d  ^out.out(d)   </text>
- </g>
- </g>
- </svg>
|