Compare commits

...

2 Commits

Author SHA1 Message Date
Tristan B. Velloza Kildaire 909c1d0ab6 Graphs
- Updated
2024-04-01 20:54:28 +02:00
Tristan B. Velloza Kildaire 28a6b872df Parser
- Updated docs
2024-04-01 20:53:21 +02:00
12 changed files with 238 additions and 1592 deletions

View File

@ -1,19 +1,19 @@
<?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 5.0.0 (0)
<!-- Generated by graphviz version 7.1.0 (0)
-->
<!-- Title: Pooling Pages: 1 -->
<svg width="272pt" height="514pt"
viewBox="0.00 0.00 272.48 514.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="273pt" height="514pt"
viewBox="0.00 0.00 272.58 514.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 510)">
<title>Pooling</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-510 268.48,-510 268.48,4 -4,4"/>
<text text-anchor="middle" x="132.24" y="-490.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Pooling of a parse node to a DNode</text>
<polygon fill="white" stroke="none" points="-4,4 -4,-510 268.58,-510 268.58,4 -4,4"/>
<text text-anchor="middle" x="132.29" y="-490.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Pooling of a parse node to a DNode</text>
<!-- DNode_1 -->
<g id="node1" class="node">
<title>DNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="173.5,-236 1.5,-236 1.5,0 173.5,0 173.5,-236"/>
<polygon fill="#f2f2f2" stroke="none" points="173.5,-236 1.5,-236 1.5,0 173.5,0 173.5,-236"/>
<polygon fill="none" stroke="black" points="1.5,-211 1.5,-236 173.5,-236 173.5,-211 1.5,-211"/>
<text text-anchor="start" x="61" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="65" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
@ -37,7 +37,7 @@
<!-- SubDNode_1 -->
<g id="node2" class="node">
<title>SubDNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="175,-483 0,-483 0,-272 175,-272 175,-483"/>
<polygon fill="#f2f2f2" stroke="none" points="175,-483 0,-483 0,-272 175,-272 175,-483"/>
<polygon fill="none" stroke="black" points="0.5,-457.5 0.5,-482.5 175.5,-482.5 175.5,-457.5 0.5,-457.5"/>
<text text-anchor="start" x="5.5" y="-467.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="9.5" y="-467.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Variable node (PNode) &#160;&#160;</text>
@ -59,9 +59,9 @@
<!-- SubDNode_1&#45;&gt;DNode_1 -->
<g id="edge1" class="edge">
<title>SubDNode_1&#45;&gt;DNode_1:containedEntity</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M170.08,-263.07C201.77,-210.3 219.67,-159 169.5,-159"/>
<polygon fill="none" stroke="black" points="166.92,-261.54 164.67,-271.89 172.88,-265.2 166.92,-261.54"/>
<text text-anchor="middle" x="227.48" y="-228.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">pooled by &#160;&#160;&#160;</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M170.29,-262.72C201.85,-210.07 219.56,-159 169.5,-159"/>
<polygon fill="none" stroke="black" points="167.51,-260.57 165.26,-270.92 173.48,-264.23 167.51,-260.57"/>
<text text-anchor="middle" x="227.58" y="-227.96" font-family="Helvetica,Arial,sans-serif" font-size="14.00">pooled by &#160;&#160;&#160;</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -1,19 +1,19 @@
<?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 5.0.0 (0)
<!-- Generated by graphviz version 7.1.0 (0)
-->
<!-- Title: DependencyNodes Pages: 1 -->
<svg width="443pt" height="431pt"
viewBox="0.00 0.00 442.50 431.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 427)">
<title>DependencyNodes</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-427 438.5,-427 438.5,4 -4,4"/>
<polygon fill="white" stroke="none" points="-4,4 -4,-427 438.5,-427 438.5,4 -4,4"/>
<text text-anchor="middle" x="217.25" y="-407.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Dependency nodes</text>
<!-- DNode_1 -->
<g id="node1" class="node">
<title>DNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="300,-236 128,-236 128,0 300,0 300,-236"/>
<polygon fill="#f2f2f2" stroke="none" points="300,-236 128,-236 128,0 300,0 300,-236"/>
<polygon fill="none" stroke="black" points="128,-211 128,-236 300,-236 300,-211 128,-211"/>
<text text-anchor="start" x="187.5" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="191.5" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
@ -37,7 +37,7 @@
<!-- SubDNode_1 -->
<g id="node2" class="node">
<title>SubDNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="128,-400 0,-400 0,-272 128,-272 128,-400"/>
<polygon fill="#f2f2f2" stroke="none" points="128,-400 0,-400 0,-272 128,-272 128,-400"/>
<polygon fill="none" stroke="black" points="0,-375 0,-400 128,-400 128,-375 0,-375"/>
<text text-anchor="start" x="37.5" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="41.5" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
@ -53,14 +53,14 @@
<!-- SubDNode_1&#45;&gt;DNode_1 -->
<g id="edge1" class="edge">
<title>SubDNode_1&#45;&gt;DNode_1:dependenciesArray</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M68.89,-259.74C76.06,-219.44 92.93,-178 132,-178"/>
<polygon fill="black" stroke="black" points="68.89,-259.74 71.91,-266.28 67.04,-271.59 64.01,-265.05 68.89,-259.74"/>
<text text-anchor="middle" x="46.3" y="-219.76" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M68.95,-259.37C76.16,-219.19 93.05,-178 132,-178"/>
<polygon fill="black" stroke="black" points="68.96,-259.3 71.99,-265.84 67.11,-271.16 64.09,-264.61 68.96,-259.3"/>
<text text-anchor="middle" x="45.92" y="-220.59" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on</text>
</g>
<!-- SubDNode_2 -->
<g id="node3" class="node">
<title>SubDNode_2</title>
<polygon fill="#f2f2f2" stroke="transparent" points="281.5,-400 146.5,-400 146.5,-272 281.5,-272 281.5,-400"/>
<polygon fill="#f2f2f2" stroke="none" points="281.5,-400 146.5,-400 146.5,-272 281.5,-272 281.5,-400"/>
<polygon fill="none" stroke="black" points="147,-375 147,-400 282,-400 282,-375 147,-375"/>
<text text-anchor="start" x="188" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="192" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
@ -76,14 +76,14 @@
<!-- SubDNode_2&#45;&gt;DNode_1 -->
<g id="edge2" class="edge">
<title>SubDNode_2&#45;&gt;DNode_1:dependenciesArray</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M280.15,-262.07C312.79,-221.05 337.22,-178 296,-178"/>
<polygon fill="black" stroke="black" points="279.98,-262.29 279.29,-269.46 272.4,-271.59 273.09,-264.42 279.98,-262.29"/>
<text text-anchor="middle" x="343.21" y="-235.4" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on &#160;&#160;</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M280.23,-261.97C312.82,-220.99 337.19,-178 296,-178"/>
<polygon fill="black" stroke="black" points="280.17,-262.04 279.49,-269.22 272.6,-271.35 273.28,-264.17 280.17,-262.04"/>
<text text-anchor="middle" x="340.53" y="-239.53" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on &#160;&#160;</text>
</g>
<!-- SubDNode_3 -->
<g id="node4" class="node">
<title>SubDNode_3</title>
<polygon fill="#f2f2f2" stroke="transparent" points="434.5,-400 299.5,-400 299.5,-272 434.5,-272 434.5,-400"/>
<polygon fill="#f2f2f2" stroke="none" points="434.5,-400 299.5,-400 299.5,-272 434.5,-272 434.5,-400"/>
<polygon fill="none" stroke="black" points="300,-375 300,-400 435,-400 435,-375 300,-375"/>
<text text-anchor="start" x="341" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="345" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
@ -99,9 +99,9 @@
<!-- SubDNode_3&#45;&gt;DNode_1 -->
<g id="edge3" class="edge">
<title>SubDNode_3&#45;&gt;DNode_1:dependenciesArray</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M360.87,-259.74C353,-219.44 335.34,-178 296,-178"/>
<polygon fill="black" stroke="black" points="360.88,-259.77 365.84,-265 362.93,-271.59 357.96,-266.37 360.88,-259.77"/>
<text text-anchor="middle" x="388.06" y="-219.55" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on &#160;&#160;</text>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M360.8,-259.37C352.89,-219.19 335.22,-178 296,-178"/>
<polygon fill="black" stroke="black" points="360.79,-259.33 365.76,-264.56 362.84,-271.16 357.88,-265.93 360.79,-259.33"/>
<text text-anchor="middle" x="388.36" y="-220.18" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on &#160;&#160;</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -1,320 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc-plot" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Generated figure</title>
<style>
html {
line-height: 1.5;
font-family: Georgia, serif;
font-size: 20px;
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
word-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 1em;
}
}
@media print {
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
font-size: 85%;
margin: 0;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; }
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.at { color: #7d9029; }
code span.bn { color: #40a070; }
code span.bu { color: #008000; }
code span.cf { color: #007020; font-weight: bold; }
code span.ch { color: #4070a0; }
code span.cn { color: #880000; }
code span.co { color: #60a0b0; font-style: italic; }
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.do { color: #ba2121; font-style: italic; }
code span.dt { color: #902000; }
code span.dv { color: #40a070; }
code span.er { color: #ff0000; font-weight: bold; }
code span.ex { }
code span.fl { color: #40a070; }
code span.fu { color: #06287e; }
code span.im { color: #008000; font-weight: bold; }
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.kw { color: #007020; font-weight: bold; }
code span.op { color: #666666; }
code span.ot { color: #007020; }
code span.pp { color: #bc7a00; }
code span.sc { color: #4070a0; }
code span.ss { color: #bb6688; }
code span.st { color: #4070a0; }
code span.va { color: #19177c; }
code span.vs { color: #4070a0; }
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<div class="sourceCode" id="cb1"><pre class="sourceCode dot"><code class="sourceCode dot"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co">// Generated by pandoc-plot 1.5.5</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="kw">digraph</span> <span class="va">CompilationProcess</span> <span class="ot">{</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">graph</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="st">&quot;Compilation process&quot;</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">labelloc</span><span class="ot">=</span><span class="st">&quot;t&quot;</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">node</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">record</span></span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">filled</span></span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fillcolor</span><span class="ot">=</span><span class="va">gray95</span></span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span><span class="ot">]</span></span>
<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">Lexer</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">Lexer</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">arrowhead</span><span class="ot">=</span><span class="va">vee</span><span class="ot">]</span></span>
<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">Lexer</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">Parser</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;tokens&quot;</span><span class="ot">]</span></span>
<span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">Parser</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">Parser</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">arrowhead</span><span class="ot">=</span><span class="va">vee</span><span class="ot">]</span></span>
<span id="cb1-36"><a href="#cb1-36" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">Parser</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">Symbols</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;Container&quot;</span><span class="ot">]</span></span>
<span id="cb1-37"><a href="#cb1-37" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-38"><a href="#cb1-38" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">Symbols</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-39"><a href="#cb1-39" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-40"><a href="#cb1-40" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-41"><a href="#cb1-41" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">Symbols</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-42"><a href="#cb1-42" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-43"><a href="#cb1-43" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-44"><a href="#cb1-44" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-45"><a href="#cb1-45" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss1&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Pseudo</span><span class="co">-</span><span class="va">entity</span><span class="co"> </span><span class="va">resolution</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-46"><a href="#cb1-46" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss2&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Name</span><span class="co"> </span><span class="va">collision</span><span class="co"> </span><span class="va">detection</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-47"><a href="#cb1-47" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-48"><a href="#cb1-48" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-49"><a href="#cb1-49" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-50"><a href="#cb1-50" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-51"><a href="#cb1-51" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-52"><a href="#cb1-52" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-53"><a href="#cb1-53" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">arrowhead</span><span class="ot">=</span><span class="va">vee</span><span class="ot">]</span></span>
<span id="cb1-54"><a href="#cb1-54" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">Symbols</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">Dependency</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;Container&quot;</span><span class="ot">]</span></span>
<span id="cb1-55"><a href="#cb1-55" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-56"><a href="#cb1-56" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">Dependency</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-57"><a href="#cb1-57" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-58"><a href="#cb1-58" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-59"><a href="#cb1-59" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">Dependency</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-60"><a href="#cb1-60" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-61"><a href="#cb1-61" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-62"><a href="#cb1-62" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-63"><a href="#cb1-63" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss1&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Dependency</span><span class="co"> </span><span class="va">generation</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-64"><a href="#cb1-64" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss2&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Linearization</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-65"><a href="#cb1-65" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-66"><a href="#cb1-66" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-67"><a href="#cb1-67" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-68"><a href="#cb1-68" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-69"><a href="#cb1-69" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-70"><a href="#cb1-70" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-71"><a href="#cb1-71" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">arrowhead</span><span class="ot">=</span><span class="va">vee</span><span class="ot">]</span></span>
<span id="cb1-72"><a href="#cb1-72" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">Dependency</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">TypeCheckCodeGen</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;DNodes&quot;</span><span class="ot">]</span></span>
<span id="cb1-73"><a href="#cb1-73" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-74"><a href="#cb1-74" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">TypeCheckCodeGen</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-75"><a href="#cb1-75" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-76"><a href="#cb1-76" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-77"><a href="#cb1-77" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">TC</span><span class="co">/</span><span class="va">GC</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-78"><a href="#cb1-78" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-79"><a href="#cb1-79" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-80"><a href="#cb1-80" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss1&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Type</span><span class="co"> </span><span class="va">checking</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-81"><a href="#cb1-81" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss2&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Code</span><span class="co"> </span><span class="va">generation</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-82"><a href="#cb1-82" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-83"><a href="#cb1-83" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-84"><a href="#cb1-84" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-85"><a href="#cb1-85" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-86"><a href="#cb1-86" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-87"><a href="#cb1-87" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-88"><a href="#cb1-88" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">arrowhead</span><span class="ot">=</span><span class="va">vee</span><span class="ot">]</span></span>
<span id="cb1-89"><a href="#cb1-89" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">TypeCheckCodeGen</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">InstructionEmit</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;Instructions&quot;</span><span class="ot">]</span></span>
<span id="cb1-90"><a href="#cb1-90" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-91"><a href="#cb1-91" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">InstructionEmit</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-92"><a href="#cb1-92" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-93"><a href="#cb1-93" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-94"><a href="#cb1-94" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">Emit</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-95"><a href="#cb1-95" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-96"><a href="#cb1-96" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-97"><a href="#cb1-97" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss1&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Instruction</span><span class="co"> </span><span class="va">transformation</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-98"><a href="#cb1-98" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss2&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Symbol</span><span class="co"> </span><span class="va">mapping</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-99"><a href="#cb1-99" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-100"><a href="#cb1-100" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-101"><a href="#cb1-101" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-102"><a href="#cb1-102" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-103"><a href="#cb1-103" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-104"><a href="#cb1-104" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-105"><a href="#cb1-105" aria-hidden="true" tabindex="-1"></a><span class="ot">}</span></span></code></pre></div>
<a href="https://github.com/LaurentRDC/pandoc-plot">Click here to see how this plot was generated.</a>
</body>
</html>

View File

@ -1,115 +0,0 @@
<?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 5.0.0 (0)
-->
<!-- Title: CompilationProcess Pages: 1 -->
<svg width="199pt" height="553pt"
viewBox="0.00 0.00 199.00 553.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 549)">
<title>CompilationProcess</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-549 195,-549 195,4 -4,4"/>
<text text-anchor="middle" x="95.5" y="-529.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Compilation process</text>
<!-- Lexer -->
<g id="node1" class="node">
<title>Lexer</title>
<polygon fill="#f2f2f2" stroke="transparent" points="123,-522 68,-522 68,-497 123,-497 123,-522"/>
<polygon fill="none" stroke="black" points="68.5,-496.5 68.5,-521.5 123.5,-521.5 123.5,-496.5 68.5,-496.5"/>
<text text-anchor="start" x="73.5" y="-506.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="77.5" y="-506.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Lexer</text>
<text text-anchor="start" x="114.5" y="-506.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
</g>
<!-- Parser -->
<g id="node2" class="node">
<title>Parser</title>
<polygon fill="#f2f2f2" stroke="transparent" points="126,-461 65,-461 65,-436 126,-436 126,-461"/>
<polygon fill="none" stroke="black" points="65.5,-435.5 65.5,-460.5 126.5,-460.5 126.5,-435.5 65.5,-435.5"/>
<text text-anchor="start" x="70.5" y="-445.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="74.5" y="-445.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Parser</text>
<text text-anchor="start" x="117.5" y="-445.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
</g>
<!-- Lexer&#45;&gt;Parser -->
<g id="edge1" class="edge">
<title>Lexer&#45;&gt;Parser</title>
<path fill="none" stroke="black" d="M95.5,-496.84C95.5,-489.57 95.5,-479.98 95.5,-471.33"/>
<polygon fill="black" stroke="black" points="95.5,-461.13 100,-471.13 95.5,-466.13 95.5,-471.13 95.5,-471.13 95.5,-471.13 95.5,-466.13 91,-471.13 95.5,-461.13 95.5,-461.13"/>
<text text-anchor="middle" x="75.5" y="-482.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">tokens</text>
</g>
<!-- Symbols -->
<g id="node3" class="node">
<title>Symbols</title>
<polygon fill="#f2f2f2" stroke="transparent" points="188,-400 3,-400 3,-327 188,-327 188,-400"/>
<polygon fill="none" stroke="black" points="3.5,-374.5 3.5,-399.5 188.5,-399.5 188.5,-374.5 3.5,-374.5"/>
<text text-anchor="start" x="63" y="-384.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="67" y="-384.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Symbols</text>
<text text-anchor="start" x="125" y="-384.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="3.5,-326.5 3.5,-374.5 188.5,-374.5 188.5,-326.5 3.5,-326.5"/>
<text text-anchor="start" x="10.5" y="-356.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Pseudo&#45;entity resolution &#160;&#160;&#160;</text>
<text text-anchor="start" x="10.5" y="-337.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Name collision detection &#160;&#160;&#160;</text>
</g>
<!-- Parser&#45;&gt;Symbols -->
<g id="edge2" class="edge">
<title>Parser&#45;&gt;Symbols</title>
<path fill="none" stroke="black" d="M95.5,-435.96C95.5,-429.16 95.5,-420.05 95.5,-410.62"/>
<polygon fill="black" stroke="black" points="95.5,-400.36 100,-410.36 95.5,-405.36 95.5,-410.36 95.5,-410.36 95.5,-410.36 95.5,-405.36 91,-410.36 95.5,-400.36 95.5,-400.36"/>
<text text-anchor="middle" x="66" y="-421.83" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Container</text>
</g>
<!-- Dependency -->
<g id="node4" class="node">
<title>Dependency</title>
<polygon fill="#f2f2f2" stroke="transparent" points="186,-291 5,-291 5,-218 186,-218 186,-291"/>
<polygon fill="none" stroke="black" points="5.5,-265.5 5.5,-290.5 186.5,-290.5 186.5,-265.5 5.5,-265.5"/>
<text text-anchor="start" x="51" y="-275.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="55" y="-275.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Dependency</text>
<text text-anchor="start" x="137" y="-275.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="5.5,-217.5 5.5,-265.5 186.5,-265.5 186.5,-217.5 5.5,-217.5"/>
<text text-anchor="start" x="12.5" y="-247.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Dependency generation &#160;&#160;&#160;</text>
<text text-anchor="start" x="12.5" y="-228.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Linearization &#160;&#160;&#160;</text>
</g>
<!-- Symbols&#45;&gt;Dependency -->
<g id="edge3" class="edge">
<title>Symbols&#45;&gt;Dependency</title>
<path fill="none" stroke="black" d="M95.5,-326.87C95.5,-318.75 95.5,-310 95.5,-301.51"/>
<polygon fill="black" stroke="black" points="95.5,-291.34 100,-301.34 95.5,-296.34 95.5,-301.34 95.5,-301.34 95.5,-301.34 95.5,-296.34 91,-301.34 95.5,-291.34 95.5,-291.34"/>
<text text-anchor="middle" x="66" y="-312.91" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Container</text>
</g>
<!-- TypeCheckCodeGen -->
<g id="node5" class="node">
<title>TypeCheckCodeGen</title>
<polygon fill="#f2f2f2" stroke="transparent" points="164.5,-182 26.5,-182 26.5,-109 164.5,-109 164.5,-182"/>
<polygon fill="none" stroke="black" points="26.5,-156.5 26.5,-181.5 164.5,-181.5 164.5,-156.5 26.5,-156.5"/>
<text text-anchor="start" x="70" y="-166.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="74" y="-166.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">TC/GC</text>
<text text-anchor="start" x="117" y="-166.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="26.5,-108.5 26.5,-156.5 164.5,-156.5 164.5,-108.5 26.5,-108.5"/>
<text text-anchor="start" x="33.5" y="-138.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Type checking &#160;&#160;&#160;</text>
<text text-anchor="start" x="33.5" y="-119.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Code generation &#160;&#160;&#160;</text>
</g>
<!-- Dependency&#45;&gt;TypeCheckCodeGen -->
<g id="edge4" class="edge">
<title>Dependency&#45;&gt;TypeCheckCodeGen</title>
<path fill="none" stroke="black" d="M95.5,-217.87C95.5,-209.75 95.5,-201 95.5,-192.51"/>
<polygon fill="black" stroke="black" points="95.5,-182.34 100,-192.34 95.5,-187.34 95.5,-192.34 95.5,-192.34 95.5,-192.34 95.5,-187.34 91,-192.34 95.5,-182.34 95.5,-182.34"/>
<text text-anchor="middle" x="70.5" y="-203.91" font-family="Helvetica,Arial,sans-serif" font-size="14.00">DNodes</text>
</g>
<!-- InstructionEmit -->
<g id="node6" class="node">
<title>InstructionEmit</title>
<polygon fill="#f2f2f2" stroke="transparent" points="191,-73 0,-73 0,0 191,0 191,-73"/>
<polygon fill="none" stroke="black" points="0.5,-47.5 0.5,-72.5 191.5,-72.5 191.5,-47.5 0.5,-47.5"/>
<text text-anchor="start" x="76.5" y="-57.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="80.5" y="-57.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Emit</text>
<text text-anchor="start" x="111.5" y="-57.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-47.5 191.5,-47.5 191.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="7.5" y="-29.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Instruction transformation &#160;&#160;&#160;</text>
<text text-anchor="start" x="7.5" y="-10.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Symbol mapping &#160;&#160;&#160;</text>
</g>
<!-- TypeCheckCodeGen&#45;&gt;InstructionEmit -->
<g id="edge5" class="edge">
<title>TypeCheckCodeGen&#45;&gt;InstructionEmit</title>
<path fill="none" stroke="black" d="M95.5,-108.87C95.5,-100.75 95.5,-92 95.5,-83.51"/>
<polygon fill="black" stroke="black" points="95.5,-73.34 100,-83.34 95.5,-78.34 95.5,-83.34 95.5,-83.34 95.5,-83.34 95.5,-78.34 91,-83.34 95.5,-73.34 95.5,-73.34"/>
<text text-anchor="middle" x="60.5" y="-94.91" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Instructions</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -401,32 +401,128 @@ expect(SymbolType.SEMICOLON, lexer.getCurrentToken());
lexer.nextToken();
```
### Modules
#### Visiting modules
TODO: Add this
We now have an array of modules wanting to be imported in the form of
`collectedModuleNames`. But what do we do with these now?
It is worth
Well, we need to obviously open up the modules but that means ~~two~~
three things:
It is worth dedicating a section to how the module lookup system works.
This is discussed as part of the overarching *“Parsing”* chapter because
this code is made of use within the `parseImport(string)` method.
1. How do we map a module name `b` to a filename?
2. How do we prevent cycles when visiting modules
3. How do we add them all to the correct *program*?
Lets start off with a module which we are parsing, and lets say that
it looks like this:
Well, lucky for you the answers are all here - albeit, it did take a lot
of time to get this albeit simple-sounding system right.
The mapping of names is discussed in the *module management* section but
needless to say it is performed by the current `Program`s
`ModuleManager` which can be retrieved via `this.program.getModMan()`.
------------------------------------------------------------------------
Lets look at how this code works. Recall that we were still busy in
`parseImport()`. Well, now we shall enter the following method
`doImport(string[])` as follows:
``` d
TODO: Add code
/* Perform the actual import */
doImport(collectedModuleNames);
```
When we examine each of the import statements, how is it that we
actually go about looking up the module it refers to on disk? How do we
know which directories to scan in the first place. How is the name
finally determined? All of these questions will be answered but before
we can do so we must first take a look at the sub-system known as the
`ModuleManager`.
This method first of all starts off by obtaining a few important object
instances:
Things added to search path:
``` d
// Print out some information about the current program
Program prog = this.compiler.getProgram();
- Current working directory
- `modman:paths`
- COntaining directory of each module on command0line
// Get the module manager
ModuleManager modMan = compiler.getModMan();
```
------------------------------------------------------------------------
Now, we must perform the following **steps**:
1. *For every* module name `i` in `collectedModuleNames`
1. Find a `ModuleEntry` for *name* `i`
2. Append this `ModuleEntry` to `foundEnts`
This step is what satisfies the first 1/3 steps of ours. This maps the
incoming module *name* to a module *filename*. The code for doing this
is shown below:
``` d
// Search for all the module entries
ModuleEntry[] foundEnts;
foreach(string mod; modules)
{
gprintln(format("Module wanting to be imported: %s", mod));
// Search for the module entry
ModuleEntry foundEnt = modMan.find(mod);
gprintln("Found module entry: "~to!(string)(foundEnt));
foundEnts ~= foundEnt;
}
```
------------------------------------------------------------------------
Now we have to do the following **steps**:
1. *For each* module entry `m` in `foundEnts`
1. Check if `m` has been visited, **if so**, then go back to `1`
and process the next *module entry*
2. *If **not*** then *mark the entry* as visited
1. Then read the modules source code
2. Parse the module and obtain a `Module` object
3. Save the obtained `Module` to the *module entry* `m`
The code for the above algorithm can be seen below:
``` d
// For each module entry, only import
// it if not already in the process
// of being visited
foreach(ModuleEntry modEnt; foundEnts)
{
// Check here if already present, if so,
// then skip
if(prog.isEntryPresent(modEnt))
{
gprintln(format("Not parsing module '%s' as already marked as visited", modEnt));
continue;
}
// Mark it as visited
prog.markEntryAsVisited(modEnt);
// Read in the module's contents
string moduleSource = modMan.readModuleData_throwable(modEnt);
gprintln("Module has "~to!(string)(moduleSource.length)~" many bytes");
// Parse the module
import tlang.compiler.lexer.kinds.basic : BasicLexer;
LexerInterface lexerInterface = new BasicLexer(moduleSource);
(cast(BasicLexer)lexerInterface).performLex();
Parser parser = new Parser(lexerInterface, this.compiler);
Module pMod = parser.parse(modEnt.getPath());
// Map parsed module to its entry
prog.setEntryModule(modEnt, pMod);
}
```
This whole process is important, especially the aspect whereby we mark a
module as visited prior to finishing parsing it. One needs this because
a module `b` might import a module `a` which imports a module `b` and it
is at this last point that we want the check for visitation to return
`true` even though parsing of the `b` module has not yet completed.
Then at the end of the entire process we save the obtained *module
object* to its respective *module entry*. The act of saving it basically
maps the modules *name* to the `Module` object itself and **also** adds
it to the `Program`s body - hence making this module a part of the
larger program.

View File

@ -1,280 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc-plot" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Generated figure</title>
<style>
html {
line-height: 1.5;
font-family: Georgia, serif;
font-size: 20px;
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
word-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 1em;
}
}
@media print {
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
font-size: 85%;
margin: 0;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; }
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.at { color: #7d9029; }
code span.bn { color: #40a070; }
code span.bu { color: #008000; }
code span.cf { color: #007020; font-weight: bold; }
code span.ch { color: #4070a0; }
code span.cn { color: #880000; }
code span.co { color: #60a0b0; font-style: italic; }
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.do { color: #ba2121; font-style: italic; }
code span.dt { color: #902000; }
code span.dv { color: #40a070; }
code span.er { color: #ff0000; font-weight: bold; }
code span.ex { }
code span.fl { color: #40a070; }
code span.fu { color: #06287e; }
code span.im { color: #008000; font-weight: bold; }
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.kw { color: #007020; font-weight: bold; }
code span.op { color: #666666; }
code span.ot { color: #007020; }
code span.pp { color: #bc7a00; }
code span.sc { color: #4070a0; }
code span.ss { color: #bb6688; }
code span.st { color: #4070a0; }
code span.va { color: #19177c; }
code span.vs { color: #4070a0; }
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<div class="sourceCode" id="cb1"><pre class="sourceCode dot"><code class="sourceCode dot"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co">// Generated by pandoc-plot 1.5.5</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="kw">digraph</span> <span class="va">Pooling</span> <span class="ot">{</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">graph</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="st">&quot;Pooling of a parse node to a DNode&quot;</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">labelloc</span><span class="ot">=</span><span class="st">&quot;t&quot;</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">node</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">record</span></span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">filled</span></span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fillcolor</span><span class="ot">=</span><span class="va">gray95</span></span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span><span class="ot">]</span></span>
<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">arrowhead</span><span class="ot">=</span><span class="va">vee</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">dashed</span><span class="ot">]</span></span>
<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="co"> </span><span class="at">arrowtail</span><span class="ot">=</span><span class="va">empty</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="st">&quot;&quot;</span><span class="ot">]</span></span>
<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="co"> </span><span class="at">arrowtail</span><span class="ot">=</span><span class="va">empty</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">dashed</span><span class="ot">]</span></span>
<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">DNode_1</span></span>
<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">DNode_1</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">DNode</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;+ </span><span class="va">properties</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;dependenciesArray&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">DNode</span><span class="ot">[]</span><span class="co"> </span><span class="va">dependencies</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;containedEntity&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Statement</span><span class="co"> </span><span class="va">entity</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;...&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">methods</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-36"><a href="#cb1-36" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">needs</span><span class="ot">(</span><span class="va">DNode</span><span class="ot">)</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-37"><a href="#cb1-37" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">isVisited</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-38"><a href="#cb1-38" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">markVisited</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-39"><a href="#cb1-39" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">getEntity</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-40"><a href="#cb1-40" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-41"><a href="#cb1-41" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-42"><a href="#cb1-42" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-43"><a href="#cb1-43" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="ot">]</span></span>
<span id="cb1-44"><a href="#cb1-44" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_1</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">DNode_1</span><span class="co">:</span><span class="va">containedEntity</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;pooled by &quot;</span><span class="ot">]</span></span>
<span id="cb1-45"><a href="#cb1-45" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-46"><a href="#cb1-46" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-47"><a href="#cb1-47" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_1</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-48"><a href="#cb1-48" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-49"><a href="#cb1-49" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-50"><a href="#cb1-50" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">Variable</span><span class="co"> </span><span class="kw">node</span><span class="co"> </span><span class="ot">(</span><span class="va">PNode</span><span class="ot">)</span><span class="co"> &lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-51"><a href="#cb1-51" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-52"><a href="#cb1-52" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-53"><a href="#cb1-53" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">properties</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-54"><a href="#cb1-54" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;- </span><span class="va">string</span><span class="co"> </span><span class="at">name</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-55"><a href="#cb1-55" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;- </span><span class="va">string</span><span class="co"> </span><span class="va">type</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-56"><a href="#cb1-56" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;...&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-57"><a href="#cb1-57" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-58"><a href="#cb1-58" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-59"><a href="#cb1-59" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">methods</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-60"><a href="#cb1-60" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">getName</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-61"><a href="#cb1-61" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">getType</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-62"><a href="#cb1-62" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">hasAssignment</span><span class="ot">()</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-63"><a href="#cb1-63" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-64"><a href="#cb1-64" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-65"><a href="#cb1-65" aria-hidden="true" tabindex="-1"></a><span class="ot">}</span></span></code></pre></div>
<a href="https://github.com/LaurentRDC/pandoc-plot">Click here to see how this plot was generated.</a>
</body>
</html>

View File

@ -1,67 +0,0 @@
<?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 5.0.0 (0)
-->
<!-- Title: Pooling Pages: 1 -->
<svg width="272pt" height="514pt"
viewBox="0.00 0.00 272.48 514.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 510)">
<title>Pooling</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-510 268.48,-510 268.48,4 -4,4"/>
<text text-anchor="middle" x="132.24" y="-490.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Pooling of a parse node to a DNode</text>
<!-- DNode_1 -->
<g id="node1" class="node">
<title>DNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="173.5,-236 1.5,-236 1.5,0 173.5,0 173.5,-236"/>
<polygon fill="none" stroke="black" points="1.5,-211 1.5,-236 173.5,-236 173.5,-211 1.5,-211"/>
<text text-anchor="start" x="61" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="65" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
<text text-anchor="start" x="110" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="1.5,-125 1.5,-211 173.5,-211 173.5,-125 1.5,-125"/>
<text text-anchor="start" x="8.5" y="-192.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ properties</text>
<text text-anchor="start" x="8.5" y="-173.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; DNode[] dependencies &#160;&#160;</text>
<text text-anchor="start" x="8.5" y="-154.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Statement entity</text>
<text text-anchor="start" x="8.5" y="-135.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">...</text>
<polygon fill="none" stroke="black" points="1.5,-100 1.5,-125 173.5,-125 173.5,-100 1.5,-100"/>
<text text-anchor="start" x="6.5" y="-108.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ methods</text>
<polygon fill="none" stroke="black" points="1.5,-75 1.5,-100 173.5,-100 173.5,-75 1.5,-75"/>
<text text-anchor="start" x="6.5" y="-83.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ needs(DNode)</text>
<polygon fill="none" stroke="black" points="1.5,-50 1.5,-75 173.5,-75 173.5,-50 1.5,-50"/>
<text text-anchor="start" x="6.5" y="-58.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ isVisited()</text>
<polygon fill="none" stroke="black" points="1.5,-25 1.5,-50 173.5,-50 173.5,-25 1.5,-25"/>
<text text-anchor="start" x="6.5" y="-33.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ markVisited()</text>
<polygon fill="none" stroke="black" points="1.5,0 1.5,-25 173.5,-25 173.5,0 1.5,0"/>
<text text-anchor="start" x="6.5" y="-8.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getEntity()</text>
</g>
<!-- SubDNode_1 -->
<g id="node2" class="node">
<title>SubDNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="175,-483 0,-483 0,-272 175,-272 175,-483"/>
<polygon fill="none" stroke="black" points="0.5,-457.5 0.5,-482.5 175.5,-482.5 175.5,-457.5 0.5,-457.5"/>
<text text-anchor="start" x="5.5" y="-467.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="9.5" y="-467.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Variable node (PNode) &#160;&#160;</text>
<text text-anchor="start" x="166.5" y="-467.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="0.5,-371.5 0.5,-457.5 175.5,-457.5 175.5,-371.5 0.5,-371.5"/>
<text text-anchor="start" x="7.5" y="-439.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ properties </text>
<text text-anchor="start" x="7.5" y="-420.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; string name</text>
<text text-anchor="start" x="7.5" y="-401.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; string type</text>
<text text-anchor="start" x="7.5" y="-382.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">...</text>
<polygon fill="none" stroke="black" points="0.5,-346.5 0.5,-371.5 175.5,-371.5 175.5,-346.5 0.5,-346.5"/>
<text text-anchor="start" x="5.5" y="-355.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ methods</text>
<polygon fill="none" stroke="black" points="0.5,-321.5 0.5,-346.5 175.5,-346.5 175.5,-321.5 0.5,-321.5"/>
<text text-anchor="start" x="5.5" y="-330.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getName()</text>
<polygon fill="none" stroke="black" points="0.5,-296.5 0.5,-321.5 175.5,-321.5 175.5,-296.5 0.5,-296.5"/>
<text text-anchor="start" x="5.5" y="-305.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getType()</text>
<polygon fill="none" stroke="black" points="0.5,-271.5 0.5,-296.5 175.5,-296.5 175.5,-271.5 0.5,-271.5"/>
<text text-anchor="start" x="5.5" y="-280.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ hasAssignment() &#160;&#160;</text>
</g>
<!-- SubDNode_1&#45;&gt;DNode_1 -->
<g id="edge1" class="edge">
<title>SubDNode_1&#45;&gt;DNode_1:containedEntity</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M170.08,-263.07C201.77,-210.3 219.67,-159 169.5,-159"/>
<polygon fill="none" stroke="black" points="166.92,-261.54 164.67,-271.89 172.88,-265.2 166.92,-261.54"/>
<text text-anchor="middle" x="227.48" y="-228.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">pooled by &#160;&#160;&#160;</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -1,312 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc-plot" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Generated figure</title>
<style>
html {
line-height: 1.5;
font-family: Georgia, serif;
font-size: 20px;
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
word-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 1em;
}
}
@media print {
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
font-size: 85%;
margin: 0;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; }
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.at { color: #7d9029; }
code span.bn { color: #40a070; }
code span.bu { color: #008000; }
code span.cf { color: #007020; font-weight: bold; }
code span.ch { color: #4070a0; }
code span.cn { color: #880000; }
code span.co { color: #60a0b0; font-style: italic; }
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.do { color: #ba2121; font-style: italic; }
code span.dt { color: #902000; }
code span.dv { color: #40a070; }
code span.er { color: #ff0000; font-weight: bold; }
code span.ex { }
code span.fl { color: #40a070; }
code span.fu { color: #06287e; }
code span.im { color: #008000; font-weight: bold; }
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.kw { color: #007020; font-weight: bold; }
code span.op { color: #666666; }
code span.ot { color: #007020; }
code span.pp { color: #bc7a00; }
code span.sc { color: #4070a0; }
code span.ss { color: #bb6688; }
code span.st { color: #4070a0; }
code span.va { color: #19177c; }
code span.vs { color: #4070a0; }
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<div class="sourceCode" id="cb1"><pre class="sourceCode dot"><code class="sourceCode dot"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co">// Generated by pandoc-plot 1.5.5</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="kw">digraph</span> <span class="va">DependencyNodes</span> <span class="ot">{</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">graph</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="st">&quot;Dependency nodes&quot;</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">labelloc</span><span class="ot">=</span><span class="st">&quot;t&quot;</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">node</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">record</span></span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">filled</span></span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fillcolor</span><span class="ot">=</span><span class="va">gray95</span></span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span><span class="ot">]</span></span>
<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">arrowhead</span><span class="ot">=</span><span class="va">vee</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">dashed</span><span class="ot">]</span></span>
<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="co"> </span><span class="at">arrowtail</span><span class="ot">=</span><span class="va">empty</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="st">&quot;&quot;</span><span class="ot">]</span></span>
<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="co"> </span><span class="at">arrowtail</span><span class="ot">=</span><span class="va">empty</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">dashed</span><span class="ot">]</span></span>
<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">DNode_1</span></span>
<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">DNode_1</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">DNode</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;+ </span><span class="va">properties</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;dependenciesArray&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">DNode</span><span class="ot">[]</span><span class="co"> </span><span class="va">dependencies</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;ss2&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Statement</span><span class="co"> </span><span class="va">entity</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;...&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">methods</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-36"><a href="#cb1-36" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">needs</span><span class="ot">(</span><span class="va">DNode</span><span class="ot">)</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-37"><a href="#cb1-37" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">isVisited</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-38"><a href="#cb1-38" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">markVisited</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-39"><a href="#cb1-39" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">getEntity</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-40"><a href="#cb1-40" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-41"><a href="#cb1-41" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-42"><a href="#cb1-42" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-43"><a href="#cb1-43" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="co"> </span><span class="at">arrowtail</span><span class="ot">=</span><span class="va">diamond</span><span class="ot">]</span></span>
<span id="cb1-44"><a href="#cb1-44" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_1</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">DNode_1</span><span class="co">:</span><span class="va">dependenciesArray</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;depends on&quot;</span><span class="ot">]</span></span>
<span id="cb1-45"><a href="#cb1-45" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_2</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">DNode_1</span><span class="co">:</span><span class="va">dependenciesArray</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;depends on &quot;</span><span class="ot">]</span></span>
<span id="cb1-46"><a href="#cb1-46" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_3</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">DNode_1</span><span class="co">:</span><span class="va">dependenciesArray</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;depends on &quot;</span><span class="ot">]</span></span>
<span id="cb1-47"><a href="#cb1-47" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-48"><a href="#cb1-48" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_1</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-49"><a href="#cb1-49" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-50"><a href="#cb1-50" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-51"><a href="#cb1-51" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">DNode</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-52"><a href="#cb1-52" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-53"><a href="#cb1-53" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-54"><a href="#cb1-54" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">properties</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-55"><a href="#cb1-55" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;...&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-56"><a href="#cb1-56" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-57"><a href="#cb1-57" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-58"><a href="#cb1-58" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-59"><a href="#cb1-59" aria-hidden="true" tabindex="-1"></a><span class="co"> + </span><span class="va">method</span><span class="co">&lt;</span><span class="va">br</span><span class="co">/&gt;</span></span>
<span id="cb1-60"><a href="#cb1-60" aria-hidden="true" tabindex="-1"></a><span class="co"> ...&lt;</span><span class="va">br</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">/&gt;</span></span>
<span id="cb1-61"><a href="#cb1-61" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-62"><a href="#cb1-62" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-63"><a href="#cb1-63" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-64"><a href="#cb1-64" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_2</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-65"><a href="#cb1-65" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-66"><a href="#cb1-66" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-67"><a href="#cb1-67" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">DNode</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-68"><a href="#cb1-68" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-69"><a href="#cb1-69" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-70"><a href="#cb1-70" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">properties</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-71"><a href="#cb1-71" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;...&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-72"><a href="#cb1-72" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-73"><a href="#cb1-73" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-74"><a href="#cb1-74" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-75"><a href="#cb1-75" aria-hidden="true" tabindex="-1"></a><span class="co"> + </span><span class="va">methods</span><span class="co">&lt;</span><span class="va">br</span><span class="co">/&gt;</span></span>
<span id="cb1-76"><a href="#cb1-76" aria-hidden="true" tabindex="-1"></a><span class="co"> ...&lt;</span><span class="va">br</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">/&gt;</span></span>
<span id="cb1-77"><a href="#cb1-77" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-78"><a href="#cb1-78" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-79"><a href="#cb1-79" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-80"><a href="#cb1-80" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_3</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-81"><a href="#cb1-81" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-82"><a href="#cb1-82" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-83"><a href="#cb1-83" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">DNode</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-84"><a href="#cb1-84" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-85"><a href="#cb1-85" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-86"><a href="#cb1-86" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">properties</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-87"><a href="#cb1-87" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;...&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-88"><a href="#cb1-88" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-89"><a href="#cb1-89" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-90"><a href="#cb1-90" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-91"><a href="#cb1-91" aria-hidden="true" tabindex="-1"></a><span class="co"> + </span><span class="va">methods</span><span class="co">&lt;</span><span class="va">br</span><span class="co">/&gt;</span></span>
<span id="cb1-92"><a href="#cb1-92" aria-hidden="true" tabindex="-1"></a><span class="co"> ...&lt;</span><span class="va">br</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">/&gt;</span></span>
<span id="cb1-93"><a href="#cb1-93" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-94"><a href="#cb1-94" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-95"><a href="#cb1-95" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-96"><a href="#cb1-96" aria-hidden="true" tabindex="-1"></a><span class="co"> </span></span>
<span id="cb1-97"><a href="#cb1-97" aria-hidden="true" tabindex="-1"></a><span class="ot">}</span></span></code></pre></div>
<a href="https://github.com/LaurentRDC/pandoc-plot">Click here to see how this plot was generated.</a>
</body>
</html>

View File

@ -1,107 +0,0 @@
<?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 5.0.0 (0)
-->
<!-- Title: DependencyNodes Pages: 1 -->
<svg width="443pt" height="431pt"
viewBox="0.00 0.00 442.50 431.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 427)">
<title>DependencyNodes</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-427 438.5,-427 438.5,4 -4,4"/>
<text text-anchor="middle" x="217.25" y="-407.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Dependency nodes</text>
<!-- DNode_1 -->
<g id="node1" class="node">
<title>DNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="300,-236 128,-236 128,0 300,0 300,-236"/>
<polygon fill="none" stroke="black" points="128,-211 128,-236 300,-236 300,-211 128,-211"/>
<text text-anchor="start" x="187.5" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="191.5" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
<text text-anchor="start" x="236.5" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="128,-125 128,-211 300,-211 300,-125 128,-125"/>
<text text-anchor="start" x="135" y="-192.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ properties</text>
<text text-anchor="start" x="135" y="-173.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; DNode[] dependencies &#160;&#160;</text>
<text text-anchor="start" x="135" y="-154.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Statement entity</text>
<text text-anchor="start" x="135" y="-135.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">...</text>
<polygon fill="none" stroke="black" points="128,-100 128,-125 300,-125 300,-100 128,-100"/>
<text text-anchor="start" x="133" y="-108.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ methods</text>
<polygon fill="none" stroke="black" points="128,-75 128,-100 300,-100 300,-75 128,-75"/>
<text text-anchor="start" x="133" y="-83.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ needs(DNode)</text>
<polygon fill="none" stroke="black" points="128,-50 128,-75 300,-75 300,-50 128,-50"/>
<text text-anchor="start" x="133" y="-58.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ isVisited()</text>
<polygon fill="none" stroke="black" points="128,-25 128,-50 300,-50 300,-25 128,-25"/>
<text text-anchor="start" x="133" y="-33.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ markVisited()</text>
<polygon fill="none" stroke="black" points="128,0 128,-25 300,-25 300,0 128,0"/>
<text text-anchor="start" x="133" y="-8.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getEntity()</text>
</g>
<!-- SubDNode_1 -->
<g id="node2" class="node">
<title>SubDNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="128,-400 0,-400 0,-272 128,-272 128,-400"/>
<polygon fill="none" stroke="black" points="0,-375 0,-400 128,-400 128,-375 0,-375"/>
<text text-anchor="start" x="37.5" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="41.5" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
<text text-anchor="start" x="86.5" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="0,-327 0,-375 128,-375 128,-327 0,-327"/>
<text text-anchor="start" x="7" y="-356.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ properties </text>
<text text-anchor="start" x="7" y="-337.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">...</text>
<polygon fill="none" stroke="black" points="0,-272 0,-327 128,-327 128,-272 0,-272"/>
<text text-anchor="start" x="5" y="-310.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+ method</text>
<text text-anchor="start" x="5" y="-295.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;...</text>
<text text-anchor="start" x="41" y="-280.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text>
</g>
<!-- SubDNode_1&#45;&gt;DNode_1 -->
<g id="edge1" class="edge">
<title>SubDNode_1&#45;&gt;DNode_1:dependenciesArray</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M68.89,-259.74C76.06,-219.44 92.93,-178 132,-178"/>
<polygon fill="black" stroke="black" points="68.89,-259.74 71.91,-266.28 67.04,-271.59 64.01,-265.05 68.89,-259.74"/>
<text text-anchor="middle" x="46.3" y="-219.76" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on</text>
</g>
<!-- SubDNode_2 -->
<g id="node3" class="node">
<title>SubDNode_2</title>
<polygon fill="#f2f2f2" stroke="transparent" points="281.5,-400 146.5,-400 146.5,-272 281.5,-272 281.5,-400"/>
<polygon fill="none" stroke="black" points="147,-375 147,-400 282,-400 282,-375 147,-375"/>
<text text-anchor="start" x="188" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="192" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
<text text-anchor="start" x="237" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="147,-327 147,-375 282,-375 282,-327 147,-327"/>
<text text-anchor="start" x="154" y="-356.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ properties </text>
<text text-anchor="start" x="154" y="-337.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">...</text>
<polygon fill="none" stroke="black" points="147,-272 147,-327 282,-327 282,-272 147,-272"/>
<text text-anchor="start" x="152" y="-310.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+ methods</text>
<text text-anchor="start" x="152" y="-295.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;...</text>
<text text-anchor="start" x="191.5" y="-280.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text>
</g>
<!-- SubDNode_2&#45;&gt;DNode_1 -->
<g id="edge2" class="edge">
<title>SubDNode_2&#45;&gt;DNode_1:dependenciesArray</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M280.15,-262.07C312.79,-221.05 337.22,-178 296,-178"/>
<polygon fill="black" stroke="black" points="279.98,-262.29 279.29,-269.46 272.4,-271.59 273.09,-264.42 279.98,-262.29"/>
<text text-anchor="middle" x="343.21" y="-235.4" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on &#160;&#160;</text>
</g>
<!-- SubDNode_3 -->
<g id="node4" class="node">
<title>SubDNode_3</title>
<polygon fill="#f2f2f2" stroke="transparent" points="434.5,-400 299.5,-400 299.5,-272 434.5,-272 434.5,-400"/>
<polygon fill="none" stroke="black" points="300,-375 300,-400 435,-400 435,-375 300,-375"/>
<text text-anchor="start" x="341" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="345" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
<text text-anchor="start" x="390" y="-384.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="300,-327 300,-375 435,-375 435,-327 300,-327"/>
<text text-anchor="start" x="307" y="-356.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ properties </text>
<text text-anchor="start" x="307" y="-337.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">...</text>
<polygon fill="none" stroke="black" points="300,-272 300,-327 435,-327 435,-272 300,-272"/>
<text text-anchor="start" x="305" y="-310.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+ methods</text>
<text text-anchor="start" x="305" y="-295.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;...</text>
<text text-anchor="start" x="344.5" y="-280.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text>
</g>
<!-- SubDNode_3&#45;&gt;DNode_1 -->
<g id="edge3" class="edge">
<title>SubDNode_3&#45;&gt;DNode_1:dependenciesArray</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M360.87,-259.74C353,-219.44 335.34,-178 296,-178"/>
<polygon fill="black" stroke="black" points="360.88,-259.77 365.84,-265 362.93,-271.59 357.96,-266.37 360.88,-259.77"/>
<text text-anchor="middle" x="388.06" y="-219.55" font-family="Helvetica,Arial,sans-serif" font-size="14.00">depends on &#160;&#160;</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -1,280 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc-plot" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Generated figure</title>
<style>
html {
line-height: 1.5;
font-family: Georgia, serif;
font-size: 20px;
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
word-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 1em;
}
}
@media print {
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
font-size: 85%;
margin: 0;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; }
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.at { color: #7d9029; }
code span.bn { color: #40a070; }
code span.bu { color: #008000; }
code span.cf { color: #007020; font-weight: bold; }
code span.ch { color: #4070a0; }
code span.cn { color: #880000; }
code span.co { color: #60a0b0; font-style: italic; }
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.do { color: #ba2121; font-style: italic; }
code span.dt { color: #902000; }
code span.dv { color: #40a070; }
code span.er { color: #ff0000; font-weight: bold; }
code span.ex { }
code span.fl { color: #40a070; }
code span.fu { color: #06287e; }
code span.im { color: #008000; font-weight: bold; }
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.kw { color: #007020; font-weight: bold; }
code span.op { color: #666666; }
code span.ot { color: #007020; }
code span.pp { color: #bc7a00; }
code span.sc { color: #4070a0; }
code span.ss { color: #bb6688; }
code span.st { color: #4070a0; }
code span.va { color: #19177c; }
code span.vs { color: #4070a0; }
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<div class="sourceCode" id="cb1"><pre class="sourceCode dot"><code class="sourceCode dot"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co">// Generated by pandoc-plot 1.5.5</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="kw">digraph</span> <span class="va">Pooling</span> <span class="ot">{</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">graph</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="st">&quot;Pooling of a parse node to a DNode&quot;</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">labelloc</span><span class="ot">=</span><span class="st">&quot;t&quot;</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">node</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">record</span></span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">filled</span></span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">fillcolor</span><span class="ot">=</span><span class="va">gray95</span></span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">fontname</span><span class="ot">=</span><span class="st">&quot;Helvetica,Arial,sans-serif&quot;</span><span class="ot">]</span></span>
<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">arrowhead</span><span class="ot">=</span><span class="va">vee</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">dashed</span><span class="ot">]</span></span>
<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="co"> </span><span class="at">arrowtail</span><span class="ot">=</span><span class="va">empty</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="st">&quot;&quot;</span><span class="ot">]</span></span>
<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="co"> </span><span class="at">arrowtail</span><span class="ot">=</span><span class="va">empty</span><span class="co"> </span><span class="at">style</span><span class="ot">=</span><span class="va">dashed</span><span class="ot">]</span></span>
<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">DNode_1</span></span>
<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">DNode_1</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">DNode</span><span class="co">&lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;+ </span><span class="va">properties</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;dependenciesArray&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">DNode</span><span class="ot">[]</span><span class="co"> </span><span class="va">dependencies</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">port</span><span class="ot">=</span><span class="st">&quot;containedEntity&quot;</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co"> &gt;- </span><span class="va">Statement</span><span class="co"> </span><span class="va">entity</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;...&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">methods</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-36"><a href="#cb1-36" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">needs</span><span class="ot">(</span><span class="va">DNode</span><span class="ot">)</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-37"><a href="#cb1-37" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">isVisited</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-38"><a href="#cb1-38" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">markVisited</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-39"><a href="#cb1-39" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">getEntity</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-40"><a href="#cb1-40" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-41"><a href="#cb1-41" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-42"><a href="#cb1-42" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-43"><a href="#cb1-43" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="kw">edge</span><span class="co"> </span><span class="ot">[</span><span class="at">dir</span><span class="ot">=</span><span class="va">back</span><span class="ot">]</span></span>
<span id="cb1-44"><a href="#cb1-44" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_1</span><span class="co"> </span><span class="ot">-&gt;</span><span class="co"> </span><span class="va">DNode_1</span><span class="co">:</span><span class="va">containedEntity</span><span class="co"> </span><span class="ot">[</span><span class="va">xlabel</span><span class="ot">=</span><span class="st">&quot;pooled by &quot;</span><span class="ot">]</span></span>
<span id="cb1-45"><a href="#cb1-45" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-46"><a href="#cb1-46" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-47"><a href="#cb1-47" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="va">SubDNode_1</span><span class="co"> </span><span class="ot">[</span></span>
<span id="cb1-48"><a href="#cb1-48" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">shape</span><span class="ot">=</span><span class="va">plain</span></span>
<span id="cb1-49"><a href="#cb1-49" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="at">label</span><span class="ot">=</span><span class="co">&lt;&lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;1&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellpadding</span><span class="ot">=</span><span class="st">&quot;4&quot;</span><span class="co">&gt;</span></span>
<span id="cb1-50"><a href="#cb1-50" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt; &lt;</span><span class="va">b</span><span class="co">&gt;</span><span class="va">Variable</span><span class="co"> </span><span class="kw">node</span><span class="co"> </span><span class="ot">(</span><span class="va">PNode</span><span class="ot">)</span><span class="co"> &lt;/</span><span class="va">b</span><span class="co">&gt; &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-51"><a href="#cb1-51" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co">&gt;</span></span>
<span id="cb1-52"><a href="#cb1-52" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">table</span><span class="co"> </span><span class="va">border</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellborder</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> </span><span class="va">cellspacing</span><span class="ot">=</span><span class="st">&quot;0&quot;</span><span class="co"> &gt;</span></span>
<span id="cb1-53"><a href="#cb1-53" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">properties</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-54"><a href="#cb1-54" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;- </span><span class="va">string</span><span class="co"> </span><span class="at">name</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-55"><a href="#cb1-55" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;- </span><span class="va">string</span><span class="co"> </span><span class="va">type</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-56"><a href="#cb1-56" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;...&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-57"><a href="#cb1-57" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;</span></span>
<span id="cb1-58"><a href="#cb1-58" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-59"><a href="#cb1-59" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">methods</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-60"><a href="#cb1-60" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">getName</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-61"><a href="#cb1-61" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">getType</span><span class="ot">()</span><span class="co">&lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-62"><a href="#cb1-62" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;</span><span class="va">tr</span><span class="co">&gt; &lt;</span><span class="va">td</span><span class="co"> </span><span class="va">align</span><span class="ot">=</span><span class="st">&quot;left&quot;</span><span class="co">&gt;+ </span><span class="va">hasAssignment</span><span class="ot">()</span><span class="co"> &lt;/</span><span class="va">td</span><span class="co">&gt; &lt;/</span><span class="va">tr</span><span class="co">&gt;</span></span>
<span id="cb1-63"><a href="#cb1-63" aria-hidden="true" tabindex="-1"></a><span class="co"> &lt;/</span><span class="va">table</span><span class="co">&gt;&gt;</span></span>
<span id="cb1-64"><a href="#cb1-64" aria-hidden="true" tabindex="-1"></a><span class="co"> </span><span class="ot">]</span></span>
<span id="cb1-65"><a href="#cb1-65" aria-hidden="true" tabindex="-1"></a><span class="ot">}</span></span></code></pre></div>
<a href="https://github.com/LaurentRDC/pandoc-plot">Click here to see how this plot was generated.</a>
</body>
</html>

View File

@ -1,67 +0,0 @@
<?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 5.0.0 (0)
-->
<!-- Title: Pooling Pages: 1 -->
<svg width="272pt" height="514pt"
viewBox="0.00 0.00 272.48 514.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 510)">
<title>Pooling</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-510 268.48,-510 268.48,4 -4,4"/>
<text text-anchor="middle" x="132.24" y="-490.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">Pooling of a parse node to a DNode</text>
<!-- DNode_1 -->
<g id="node1" class="node">
<title>DNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="173.5,-236 1.5,-236 1.5,0 173.5,0 173.5,-236"/>
<polygon fill="none" stroke="black" points="1.5,-211 1.5,-236 173.5,-236 173.5,-211 1.5,-211"/>
<text text-anchor="start" x="61" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="65" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">DNode</text>
<text text-anchor="start" x="110" y="-220.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="1.5,-125 1.5,-211 173.5,-211 173.5,-125 1.5,-125"/>
<text text-anchor="start" x="8.5" y="-192.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ properties</text>
<text text-anchor="start" x="8.5" y="-173.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; DNode[] dependencies &#160;&#160;</text>
<text text-anchor="start" x="8.5" y="-154.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; Statement entity</text>
<text text-anchor="start" x="8.5" y="-135.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">...</text>
<polygon fill="none" stroke="black" points="1.5,-100 1.5,-125 173.5,-125 173.5,-100 1.5,-100"/>
<text text-anchor="start" x="6.5" y="-108.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ methods</text>
<polygon fill="none" stroke="black" points="1.5,-75 1.5,-100 173.5,-100 173.5,-75 1.5,-75"/>
<text text-anchor="start" x="6.5" y="-83.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ needs(DNode)</text>
<polygon fill="none" stroke="black" points="1.5,-50 1.5,-75 173.5,-75 173.5,-50 1.5,-50"/>
<text text-anchor="start" x="6.5" y="-58.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ isVisited()</text>
<polygon fill="none" stroke="black" points="1.5,-25 1.5,-50 173.5,-50 173.5,-25 1.5,-25"/>
<text text-anchor="start" x="6.5" y="-33.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ markVisited()</text>
<polygon fill="none" stroke="black" points="1.5,0 1.5,-25 173.5,-25 173.5,0 1.5,0"/>
<text text-anchor="start" x="6.5" y="-8.8" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getEntity()</text>
</g>
<!-- SubDNode_1 -->
<g id="node2" class="node">
<title>SubDNode_1</title>
<polygon fill="#f2f2f2" stroke="transparent" points="175,-483 0,-483 0,-272 175,-272 175,-483"/>
<polygon fill="none" stroke="black" points="0.5,-457.5 0.5,-482.5 175.5,-482.5 175.5,-457.5 0.5,-457.5"/>
<text text-anchor="start" x="5.5" y="-467.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<text text-anchor="start" x="9.5" y="-467.3" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Variable node (PNode) &#160;&#160;</text>
<text text-anchor="start" x="166.5" y="-467.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00"> </text>
<polygon fill="none" stroke="black" points="0.5,-371.5 0.5,-457.5 175.5,-457.5 175.5,-371.5 0.5,-371.5"/>
<text text-anchor="start" x="7.5" y="-439.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ properties </text>
<text text-anchor="start" x="7.5" y="-420.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; string name</text>
<text text-anchor="start" x="7.5" y="-401.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">&#45; string type</text>
<text text-anchor="start" x="7.5" y="-382.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">...</text>
<polygon fill="none" stroke="black" points="0.5,-346.5 0.5,-371.5 175.5,-371.5 175.5,-346.5 0.5,-346.5"/>
<text text-anchor="start" x="5.5" y="-355.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ methods</text>
<polygon fill="none" stroke="black" points="0.5,-321.5 0.5,-346.5 175.5,-346.5 175.5,-321.5 0.5,-321.5"/>
<text text-anchor="start" x="5.5" y="-330.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getName()</text>
<polygon fill="none" stroke="black" points="0.5,-296.5 0.5,-321.5 175.5,-321.5 175.5,-296.5 0.5,-296.5"/>
<text text-anchor="start" x="5.5" y="-305.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ getType()</text>
<polygon fill="none" stroke="black" points="0.5,-271.5 0.5,-296.5 175.5,-296.5 175.5,-271.5 0.5,-271.5"/>
<text text-anchor="start" x="5.5" y="-280.3" font-family="Helvetica,Arial,sans-serif" font-size="14.00">+ hasAssignment() &#160;&#160;</text>
</g>
<!-- SubDNode_1&#45;&gt;DNode_1 -->
<g id="edge1" class="edge">
<title>SubDNode_1&#45;&gt;DNode_1:containedEntity</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M170.08,-263.07C201.77,-210.3 219.67,-159 169.5,-159"/>
<polygon fill="none" stroke="black" points="166.92,-261.54 164.67,-271.89 172.88,-265.2 166.92,-261.54"/>
<text text-anchor="middle" x="227.48" y="-228.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">pooled by &#160;&#160;&#160;</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -311,3 +311,101 @@ The mapping of names is discussed in the _module management_ section but
needless to say it is performed by the current `Program`'s `ModuleManager`
which can be retrieved via `this.program.getModMan()`.
---
Let's look at how this code works. Recall that we were still busy in `parseImport()`.
Well, now we shall enter the following method `doImport(string[])` as follows:
```d
/* Perform the actual import */
doImport(collectedModuleNames);
```
This method first of all starts off by obtaining a few important object instances:
```d
// Print out some information about the current program
Program prog = this.compiler.getProgram();
// Get the module manager
ModuleManager modMan = compiler.getModMan();
```
---
Now, we must perform the following **steps**:
1. _For every_ module name `i` in `collectedModuleNames`
i. Find a `ModuleEntry` for _name_ `i`
ii. Append this `ModuleEntry` to `foundEnts`
This step is what satisfies the first 1/3 steps of ours. This maps the incoming
module _name_ to a module _filename_. The code for doing this is shown below:
```{.d .numberLines}
// Search for all the module entries
ModuleEntry[] foundEnts;
foreach(string mod; modules)
{
gprintln(format("Module wanting to be imported: %s", mod));
// Search for the module entry
ModuleEntry foundEnt = modMan.find(mod);
gprintln("Found module entry: "~to!(string)(foundEnt));
foundEnts ~= foundEnt;
}
```
---
Now we have to do the following **steps**:
1. _For each_ module entry `m` in `foundEnts`
i. Check if `m` has been visited, **if so**, then go back to `1` and process the next _module entry_
ii. _If **not**_ then _mark the entry_ as visited
a. Then read the module's source code
b. Parse the module and obtain a `Module` object
c. Save the obtained `Module` to the _module entry_ `m`
The code for the above algorithm can be seen below:
```{.d .numberLines}
// For each module entry, only import
// it if not already in the process
// of being visited
foreach(ModuleEntry modEnt; foundEnts)
{
// Check here if already present, if so,
// then skip
if(prog.isEntryPresent(modEnt))
{
gprintln(format("Not parsing module '%s' as already marked as visited", modEnt));
continue;
}
// Mark it as visited
prog.markEntryAsVisited(modEnt);
// Read in the module's contents
string moduleSource = modMan.readModuleData_throwable(modEnt);
gprintln("Module has "~to!(string)(moduleSource.length)~" many bytes");
// Parse the module
import tlang.compiler.lexer.kinds.basic : BasicLexer;
LexerInterface lexerInterface = new BasicLexer(moduleSource);
(cast(BasicLexer)lexerInterface).performLex();
Parser parser = new Parser(lexerInterface, this.compiler);
Module pMod = parser.parse(modEnt.getPath());
// Map parsed module to its entry
prog.setEntryModule(modEnt, pMod);
}
```
This whole process is important, especially the aspect whereby we mark a module as visited prior to finishing parsing it.
One needs this because a module `b` might import a module `a` which imports a module `b` and it is at this last point that
we want the check for visitation to return `true` even though parsing of the `b` module has not yet completed.
Then at the end of the entire process we save the obtained _module object_ to its respective _module entry_. The act
of saving it basically maps the module's _name_ to the `Module` object itself and **also** adds it to the `Program`'s
body - hence making this module a part of the larger program.