aboutsummaryrefslogblamecommitdiffstats
path: root/images/evaluators-classes.svg
blob: 10c2aa7b4d043db186d2213196dd12b0c3a1ca15 (plain) (tree)
1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="CLASS" height="528px" preserveAspectRatio="none" style="width:682px;height:528px;background:#FFFFFF;" version="1.1" viewBox="0 0 682 528" width="682px" zoomAndPan="magnify"><?plantuml 1.2026.3?><defs/><g><!--class Program--><g class="entity" data-qualified-name="Program" data-source-line="4" id="ent0002"><rect fill="#F1F1F1" height="98.0859" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="146.5039" x="295.92" y="7"/><ellipse cx="336.65" cy="27.3105" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M339.1231,33.4536 Q338.5421,33.7524 337.9029,33.9019 Q337.2638,34.0513 336.5582,34.0513 Q334.0513,34.0513 332.7315,32.3994 Q331.4117,30.7476 331.4117,27.6265 Q331.4117,24.4971 332.7315,22.8452 Q334.0513,21.1934 336.5582,21.1934 Q337.2638,21.1934 337.9112,21.3428 Q338.5587,21.4922 339.1231,21.791 L339.1231,24.5137 Q338.4923,23.9326 337.8988,23.6628 Q337.3053,23.3931 336.6744,23.3931 Q335.3297,23.3931 334.6449,24.4597 Q333.96,25.5264 333.96,27.6265 Q333.96,29.7183 334.6449,30.7849 Q335.3297,31.8516 336.6744,31.8516 Q337.3053,31.8516 337.8988,31.5818 Q338.4923,31.312 339.1231,30.731 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="48.041" x="361.0103" y="23.6016">&#171;image&#187;</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57.3262" x="356.3678" y="39.668">Program</text><line style="stroke:#181818;stroke-width:0.5;" x1="296.92" x2="441.4239" y1="47.6211" y2="47.6211"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115.6641" x="301.92" y="65.1563">evaluator : string</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="134.5039" x="301.92" y="81.6445">kind : Program.kind</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="97.9795" x="301.92" y="98.1328">source : string</text></g><!--class Executable--><g class="entity" data-qualified-name="Executable" data-source-line="9" id="ent0003"><rect fill="#F1F1F1" height="56.4883" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="223.7979" x="443.27" y="205.33"/><ellipse cx="514.1894" cy="221.33" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M510.6172,217.5951 L510.6172,215.4369 L517.9966,215.4369 L517.9966,217.5951 L515.5312,217.5951 L515.5312,225.6718 L517.9966,225.6718 L517.9966,227.83 L510.6172,227.83 L510.6172,225.6718 L513.0825,225.6718 L513.0825,217.5951 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="73.459" x="534.6894" y="226.621">Executable</text><line style="stroke:#181818;stroke-width:0.5;" x1="444.27" x2="666.0679" y1="237.33" y2="237.33"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="211.7979" x="449.27" y="254.8652">invoke(inputs, within) : relation</text></g><!--class Evaluator--><g class="entity" data-qualified-name="Evaluator" data-source-line="12" id="ent0004"><rect fill="#F1F1F1" height="72.9766" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="244.6475" x="54.84" y="197.09"/><ellipse cx="141.6154" cy="213.09" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M138.0431,209.3551 L138.0431,207.1969 L145.4225,207.1969 L145.4225,209.3551 L142.9572,209.3551 L142.9572,217.4318 L145.4225,217.4318 L145.4225,219.59 L138.0431,219.59 L138.0431,217.4318 L140.5085,217.4318 L140.5085,209.3551 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="62.5967" x="162.1154" y="218.381">Evaluator</text><line style="stroke:#181818;stroke-width:0.5;" x1="55.84" x2="298.4875" y1="229.09" y2="229.09"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="134.4561" x="60.84" y="246.6252">parse(source) : kind</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="232.6475" x="60.84" y="263.1134">eval(kind, inputs, within) : relation</text></g><!--class FOL--><g class="entity" data-qualified-name="FOL" data-source-line="16" id="ent0005"><rect fill="#F1F1F1" height="32" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="125.085" x="114.62" y="40.04"/><ellipse cx="129.62" cy="56.04" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M132.0931,62.1831 Q131.5121,62.4819 130.8729,62.6313 Q130.2338,62.7807 129.5282,62.7807 Q127.0214,62.7807 125.7015,61.1289 Q124.3817,59.477 124.3817,56.3559 Q124.3817,53.2265 125.7015,51.5747 Q127.0214,49.9228 129.5282,49.9228 Q130.2338,49.9228 130.8812,50.0722 Q131.5287,50.2216 132.0931,50.5205 L132.0931,53.2431 Q131.4623,52.6621 130.8688,52.3923 Q130.2753,52.1225 129.6444,52.1225 Q128.2997,52.1225 127.6149,53.1892 Q126.9301,54.2558 126.9301,56.3559 Q126.9301,58.4477 127.6149,59.5144 Q128.2997,60.581 129.6444,60.581 Q130.2753,60.581 130.8688,60.3112 Q131.4623,60.0415 132.0931,59.4604 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="93.085" x="143.62" y="61.331">FOL evaluator</text></g><!--class EphemeralRelation--><g class="entity" data-qualified-name="EphemeralRelation" data-source-line="17" id="ent0006"><rect fill="#F1F1F1" height="32" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="158.2666" x="194.03" y="347.06"/><ellipse cx="209.03" cy="363.06" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M211.5031,369.2031 Q210.9221,369.5019 210.2829,369.6513 Q209.6438,369.8007 208.9382,369.8007 Q206.4314,369.8007 205.1115,368.1489 Q203.7917,366.497 203.7917,363.3759 Q203.7917,360.2465 205.1115,358.5947 Q206.4314,356.9428 208.9382,356.9428 Q209.6438,356.9428 210.2912,357.0922 Q210.9387,357.2416 211.5031,357.5405 L211.5031,360.2631 Q210.8723,359.6821 210.2788,359.4123 Q209.6853,359.1425 209.0544,359.1425 Q207.7097,359.1425 207.0249,360.2092 Q206.3401,361.2758 206.3401,363.3759 Q206.3401,365.4677 207.0249,366.5344 Q207.7097,367.601 209.0544,367.601 Q209.6853,367.601 210.2788,367.3312 Q210.8723,367.0615 211.5031,366.4804 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="126.2666" x="223.03" y="368.351">EphemeralRelation</text></g><!--class Relation--><g class="entity" data-qualified-name="Relation" data-source-line="18" id="ent0007"><rect fill="#F1F1F1" height="72.9766" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="156.334" x="7" y="440.06"/><ellipse cx="53.416" cy="456.06" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M49.8438,452.3251 L49.8438,450.1669 L57.2231,450.1669 L57.2231,452.3251 L54.7578,452.3251 L54.7578,460.4018 L57.2231,460.4018 L57.2231,462.56 L49.8438,462.56 L49.8438,460.4018 L52.3091,460.4018 L52.3091,452.3251 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="55.002" x="73.916" y="461.351">Relation</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="162.334" y1="472.06" y2="472.06"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144.334" x="13" y="489.5952">contains(tuple) : bool</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114.748" x="13" y="506.0834">modes() : Mode.t</text></g><!--class Enumerable--><g class="entity" data-qualified-name="Enumerable" data-source-line="22" id="ent0008"><rect fill="#F1F1F1" height="56.4883" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="149.9902" x="198.17" y="448.31"/><ellipse cx="230.2867" cy="464.31" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M226.7144,460.5751 L226.7144,458.4169 L234.0938,458.4169 L234.0938,460.5751 L231.6285,460.5751 L231.6285,468.6518 L234.0938,468.6518 L234.0938,470.81 L226.7144,470.81 L226.7144,468.6518 L229.1798,468.6518 L229.1798,460.5751 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="79.9531" x="248.0904" y="469.601">Enumerable</text><line style="stroke:#181818;stroke-width:0.5;" x1="199.17" x2="347.1602" y1="480.31" y2="480.31"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="137.9902" x="204.17" y="497.8452">enumerate() : cursor</text></g><!--class Schematics--><g class="entity" data-qualified-name="Schematics" data-source-line="25" id="ent0009"><rect fill="#F1F1F1" height="56.4883" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="146.1963" x="383.07" y="448.31"/><ellipse cx="415.442" cy="464.31" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M411.8698,460.5751 L411.8698,458.4169 L419.2492,458.4169 L419.2492,460.5751 L416.7838,460.5751 L416.7838,468.6518 L419.2492,468.6518 L419.2492,470.81 L411.8698,470.81 L411.8698,468.6518 L414.3351,468.6518 L414.3351,460.5751 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="75.5918" x="433.3025" y="469.601">Schematics</text><line style="stroke:#181818;stroke-width:0.5;" x1="384.07" x2="528.2663" y1="480.31" y2="480.31"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="134.1963" x="389.07" y="497.8452">describe() : heading</text></g><!--link Program to Executable--><g class="link" data-entity-1="ent0002" data-entity-2="ent0003" data-link-type="extension" data-source-line="29" id="lnk10"><path codeLine="29" d="M420.48,105.47 C454.46,137.54 484.7085,166.0864 512.9185,192.7064" fill="none" id="Program-to-Executable" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="526.01,205.06,517.0364,188.3425,508.8006,197.0702,526.01,205.06" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="145.1646" x="485.3" y="156.1584">runs when given a root</text></g><!--link FOL to Evaluator--><g class="link" data-entity-1="ent0005" data-entity-2="ent0004" data-link-type="extension" data-source-line="30" id="lnk11"><path codeLine="30" d="M177.17,72.31 C177.17,99.84 177.17,140.46 177.17,178.66" fill="none" id="FOL-to-Evaluator" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="177.17,196.66,183.17,178.66,171.17,178.66,177.17,196.66" style="stroke:#181818;stroke-width:1;"/></g><!--link Program to Evaluator--><g class="link" data-entity-1="ent0002" data-entity-2="ent0004" data-link-type="dependency" data-source-line="31" id="lnk12"><path codeLine="31" d="M295.42,95.53 C277.23,106.89 258.57,120.29 243.17,135.09 C224.44,153.07 211.1185,172.044 199.3585,191.804" fill="none" id="Program-to-Evaluator" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="196.29,196.96,204.3301,191.2717,198.8471,192.6634,197.4555,187.1803,196.29,196.96" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="71.9063" x="257.4747" y="148.6584">names it as</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="98.5156" x="244.17" y="163.9689">scope:language</text></g><!--link EphemeralRelation to Relation--><g class="link" data-entity-1="ent0006" data-entity-2="ent0007" data-link-type="extension" data-source-line="32" id="lnk13"><path codeLine="32" d="M247.42,379.33 C221.37,394.78 195.6428,410.0394 161.2728,430.4194" fill="none" id="EphemeralRelation-to-Relation" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="145.79,439.6,164.333,435.5803,158.2125,425.2584,145.79,439.6" style="stroke:#181818;stroke-width:1;"/></g><!--link EphemeralRelation to Enumerable--><g class="link" data-entity-1="ent0006" data-entity-2="ent0008" data-link-type="extension" data-source-line="33" id="lnk14"><path codeLine="33" d="M273.17,379.1 C273.17,396.69 273.17,408.18 273.17,429.93" fill="none" id="EphemeralRelation-to-Enumerable" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="273.17,447.93,279.17,429.93,267.17,429.93,273.17,447.93" style="stroke:#181818;stroke-width:1;"/></g><!--link EphemeralRelation to Schematics--><g class="link" data-entity-1="ent0006" data-entity-2="ent0009" data-link-type="extension" data-source-line="34" id="lnk15"><path codeLine="34" d="M298.23,379.33 C327.11,396.92 359.7669,416.8268 395.2969,438.4668" fill="none" id="EphemeralRelation-to-Schematics" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="410.67,447.83,398.418,433.3425,392.1759,443.5912,410.67,447.83" style="stroke:#181818;stroke-width:1;"/></g><!--link EphemeralRelation to Program--><g class="link" data-entity-1="ent0006" data-entity-2="ent0002" data-link-type="aggregation" data-source-line="35" id="lnk16"><path codeLine="35" d="M303.5423,339.0243 C312.8723,331.1743 313.92,328.58 320.17,317.06 C356.61,249.82 366.1196,166.0543 368.4896,111.5043" fill="none" id="EphemeralRelation-Program" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="294.36,346.75,301.5264,345.9479,303.5423,339.0243,296.3759,339.8264,294.36,346.75" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="368.75,105.51,364.3631,114.3279,368.533,110.5053,372.3556,114.6751,368.75,105.51" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="37.3242" x="359.49" y="238.6484">wraps</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="24.667" x="343.1256" y="125.7542">0..1</text></g><!--link Evaluator to EphemeralRelation--><g class="link" data-entity-1="ent0004" data-entity-2="ent0006" data-link-type="dependency" data-source-line="36" id="lnk17"><path codeLine="36" d="M204.16,270.43 C223.13,295.61 243.9418,323.2461 258.0618,342.0061" fill="none" id="Evaluator-to-EphemeralRelation" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#181818" points="261.67,346.8,259.4536,337.2038,258.6632,342.8051,253.0618,342.0147,261.67,346.8" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="74.5278" x="237.59" y="313.6284">eval returns</text></g><?plantuml-src VL9DJyCm3BttLrWx5Gagk4xJ90uW8O50SENYPQQDrYPLx6ny_dUSTcsPO5ogvldvvVavbLqJKDFA6pJKh2XmnXlhMWpOWAcH-L8as5KKkZ7UFTbtWlCiwohm47oPU8k5RR2avH8-CW3QOXrHV80viFQwKa7LNEjvtr6aewBiOp0qyRuowuJ22ofuzKec2gvgwbIjs_eDvMej2f_2pafbtOcs1gfHh7U7pQE7rAlJCENzPQbbVtiocgV_K_XNjXzsTdr_Eyqs0sHGP5-yQYjgA63zEBHDNWQeiw8P2bh7kSIsxioilA-rqFWrSPw0E_qhv70S5vFwa0NrHw6ERs9W7mxuJqRjwAM6Exug6zrXJwy8rttMsR2_elXS_inRfu-EOLUHWz9kzOiGl9SiHT2JXnn6ZREp7wWgE6o8mOhczEpO-9RcDReowZl9VgNLYuxP7QbFAHnZJ7F_mV39ukoyA2vcuykTmovWg-pHUL4iVszJUMdp-YWa1iVV?></g></svg>