xl-project/doc/UML/diagrams_expr.svg
2024-06-05 22:15:41 +02:00

1 line
No EOL
25 KiB
XML

<svg aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 1222.2734375 614" style="max-width: 1222.27px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#ccc;}#my-svg .error-icon{fill:#a44141;}#my-svg .error-text{fill:#ddd;stroke:#ddd;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:lightgrey;stroke:lightgrey;}#my-svg .marker.cross{stroke:lightgrey;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#81B1DB;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#e0dfdf;}#my-svg .edgeLabel .label rect{fill:#1f2020;}#my-svg .label text{fill:#e0dfdf;}#my-svg .edgeLabel .label span{background:#1f2020;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#1f2020;stroke:#81B1DB;stroke-width:1px;}#my-svg .divider{stroke:#81B1DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#1f2020;stroke:#81B1DB;}#my-svg g.classGroup line{stroke:#81B1DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#1f2020;opacity:0.5;}#my-svg .classLabel .label{fill:#81B1DB;font-size:10px;}#my-svg .relation{stroke:lightgrey;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:lightgrey!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:lightgrey!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:lightgrey!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:lightgrey!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:transparent!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:transparent!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:transparent!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:transparent!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#1f2020!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#1f2020!important;stroke:lightgrey!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;line-height:initial;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="18" class="marker aggregation classDiagram" id="my-svg_classDiagram-aggregationStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker aggregation classDiagram" id="my-svg_classDiagram-aggregationEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="18" class="marker extension classDiagram" id="my-svg_classDiagram-extensionStart"><path d="M 1,7 L18,13 V 1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker extension classDiagram" id="my-svg_classDiagram-extensionEnd"><path d="M 1,1 V 13 L18,7 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="18" class="marker composition classDiagram" id="my-svg_classDiagram-compositionStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker composition classDiagram" id="my-svg_classDiagram-compositionEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="6" class="marker dependency classDiagram" id="my-svg_classDiagram-dependencyStart"><path d="M 5,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="13" class="marker dependency classDiagram" id="my-svg_classDiagram-dependencyEnd"><path d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="13" class="marker lollipop classDiagram" id="my-svg_classDiagram-lollipopStart"><circle r="6" cy="7" cx="7" fill="transparent" stroke="black"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="1" class="marker lollipop classDiagram" id="my-svg_classDiagram-lollipopEnd"><circle r="6" cy="7" cx="7" fill="transparent" stroke="black"/></marker></defs><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id_Expr_BinaryExpr_1" d="M512.675,313.529L508.816,316.107C504.958,318.686,497.241,323.843,487.468,330.588C477.695,337.333,465.866,345.667,459.952,349.833L454.038,354"/><path style="fill:none" class="edge-pattern-dashed relation" id="id_Environment_BinaryExpr_2" d="M676.445,74.176L623.161,84.147C569.878,94.117,463.31,114.059,410.026,140.279C356.742,166.5,356.742,199,356.742,231.5C356.742,264,356.742,296.5,357.224,316.917C357.706,337.333,358.669,345.667,359.151,349.833L359.632,354"/><path style="fill:none" class="edge-pattern-dashed relation" id="id_Environment_Expr_3" d="M676.745,109L669.858,113.167C662.971,117.333,649.196,125.667,642.309,134C635.422,142.333,635.422,150.667,635.422,154.833L635.422,159"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id_Expr_Num_4" d="M541.316,316.028L538.91,318.19C536.503,320.352,531.689,324.676,536.595,332.838C541.501,341,556.127,353,563.44,359L570.753,365"/><path style="fill:none" class="edge-pattern-dashed relation" id="id_Environment_Num_5" d="M843.992,92.933L860.645,99.777C877.297,106.622,910.602,120.311,927.254,143.405C943.906,166.5,943.906,199,943.906,231.5C943.906,264,943.906,296.5,909.936,322.18C875.966,347.86,808.026,366.72,774.056,376.15L740.086,385.58"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id_BinaryExpr_Add_6" d="M241.909,457.708L220.077,465.09C198.244,472.472,154.579,487.236,132.747,498.785C110.914,510.333,110.914,518.667,110.914,522.833L110.914,527"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id_Expr_Variable_7" d="M666.666,320.994L667.132,322.328C667.598,323.663,668.529,326.331,723.87,338.527C779.211,350.722,888.961,372.445,943.836,383.306L998.711,394.167"/><path style="fill:none" class="edge-pattern-dashed relation" id="id_Environment_Variable_8" d="M843.992,76.766L887.742,86.305C931.492,95.844,1018.992,114.922,1062.742,140.711C1106.492,166.5,1106.492,199,1106.492,231.5C1106.492,264,1106.492,296.5,1106.492,318.75C1106.492,341,1106.492,353,1106.492,359L1106.492,365"/><path style="fill:none" class="edge-pattern-dashed relation" id="id_Expr_ExprParser_9" d="M731.008,304L736.501,308.167C741.995,312.333,752.982,320.667,765.788,330.833C778.595,341,793.221,353,800.534,359L807.847,365"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id_BinaryExpr_Div_10" d="M366.742,495L366.742,496.167C366.742,497.333,366.742,499.667,366.742,505C366.742,510.333,366.742,518.667,366.742,522.833L366.742,527"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id_BinaryExpr_Mul_11" d="M491.575,457.708L513.408,465.09C535.24,472.472,578.905,487.236,600.738,498.785C622.57,510.333,622.57,518.667,622.57,522.833L622.57,527"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id_BinaryExpr_Sub_12" d="M492.272,436.722L556.626,447.602C620.981,458.481,749.689,480.241,814.044,495.287C878.398,510.333,878.398,518.667,878.398,522.833L878.398,527"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(366.7421875, 415.5)" data-id="BinaryExpr" data-node="true" id="classId-BinaryExpr-0" class="node default"><rect height="123" width="215.5625" y="-61.5" x="-107.78125" class="outer title-state" style=""/><line y2="-9.5" y1="-9.5" x2="107.78125" x1="-107.78125" class="divider"/><line y2="6.5" y1="6.5" x2="107.78125" x1="-107.78125" class="divider"/><g class="label"><foreignObject transform="translate( -37.359375, -54)" height="18" width="74.71875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">«abstract»</span></div></foreignObject><foreignObject transform="translate( -42.6875, -32)" height="18" width="85.375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">BinaryExpr</span></div></foreignObject><foreignObject transform="translate( -100.28125, 14)" height="18" width="138.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String toString(int)</span></div></foreignObject><foreignObject transform="translate( -100.28125, 36)" height="18" width="200.5625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double value(Environment)</span></div></foreignObject></g></g><g transform="translate(635.421875, 231.5)" data-id="Expr" data-node="true" id="classId-Expr-1" class="node default"><rect height="145" width="215.5625" y="-72.5" x="-107.78125" class="outer title-state" style=""/><line y2="-20.5" y1="-20.5" x2="107.78125" x1="-107.78125" class="divider"/><line y2="-4.5" y1="-4.5" x2="107.78125" x1="-107.78125" class="divider"/><g class="label"><foreignObject transform="translate( -37.359375, -65)" height="18" width="74.71875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">«abstract»</span></div></foreignObject><foreignObject transform="translate( -17.7890625, -43)" height="18" width="35.578125" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Expr</span></div></foreignObject><foreignObject transform="translate( -100.28125, 3)" height="18" width="121.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String toString()</span></div></foreignObject><foreignObject transform="translate( -100.28125, 25)" height="18" width="138.28125"><div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;"><span style="font-style:italic;" class="nodeLabel">+String toString(int)</span></div></foreignObject><foreignObject transform="translate( -100.28125, 47)" height="18" width="200.5625"><div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;"><span style="font-style:italic;" class="nodeLabel">+double value(Environment)</span></div></foreignObject></g></g><g transform="translate(632.3046875, 415.5)" data-id="Num" data-node="true" id="classId-Num-2" class="node default"><rect height="101" width="215.5625" y="-50.5" x="-107.78125" class="outer title-state" style=""/><line y2="-20.5" y1="-20.5" x2="107.78125" x1="-107.78125" class="divider"/><line y2="-4.5" y1="-4.5" x2="107.78125" x1="-107.78125" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -17.78125, -43)" height="18" width="35.5625" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Num</span></div></foreignObject><foreignObject transform="translate( -100.28125, 3)" height="18" width="138.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String toString(int)</span></div></foreignObject><foreignObject transform="translate( -100.28125, 25)" height="18" width="200.5625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double value(Environment)</span></div></foreignObject></g></g><g transform="translate(110.9140625, 566.5)" data-id="Add" data-node="true" id="classId-Add-3" class="node default"><rect height="79" width="205.828125" y="-39.5" x="-102.9140625" class="outer title-state" style=""/><line y2="-9.5" y1="-9.5" x2="102.9140625" x1="-102.9140625" class="divider"/><line y2="6.5" y1="6.5" x2="102.9140625" x1="-102.9140625" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -15.5546875, -32)" height="18" width="31.109375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Add</span></div></foreignObject><foreignObject transform="translate( -95.4140625, 14)" height="18" width="190.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double op(double,double)</span></div></foreignObject></g></g><g transform="translate(1106.4921875, 415.5)" data-id="Variable" data-node="true" id="classId-Variable-4" class="node default"><rect height="101" width="215.5625" y="-50.5" x="-107.78125" class="outer title-state" style=""/><line y2="-20.5" y1="-20.5" x2="107.78125" x1="-107.78125" class="divider"/><line y2="-4.5" y1="-4.5" x2="107.78125" x1="-107.78125" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -30.6875, -43)" height="18" width="61.375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Variable</span></div></foreignObject><foreignObject transform="translate( -100.28125, 3)" height="18" width="138.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String toString(int)</span></div></foreignObject><foreignObject transform="translate( -100.28125, 25)" height="18" width="200.5625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double value(Environment)</span></div></foreignObject></g></g><g transform="translate(869.3984375, 415.5)" data-id="ExprParser" data-node="true" id="classId-ExprParser-5" class="node default"><rect height="101" width="158.625" y="-50.5" x="-79.3125" class="outer title-state" style=""/><line y2="-20.5" y1="-20.5" x2="79.3125" x1="-79.3125" class="divider"/><line y2="-4.5" y1="-4.5" x2="79.3125" x1="-79.3125" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -42.6953125, -43)" height="18" width="85.390625" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ExprParser</span></div></foreignObject><foreignObject transform="translate( -71.8125, 3)" height="18" width="143.625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+Expr build(Reader)</span></div></foreignObject><foreignObject transform="translate( -71.8125, 25)" height="18" width="132.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+Expr build(String)</span></div></foreignObject></g></g><g transform="translate(366.7421875, 566.5)" data-id="Div" data-node="true" id="classId-Div-6" class="node default"><rect height="79" width="205.828125" y="-39.5" x="-102.9140625" class="outer title-state" style=""/><line y2="-9.5" y1="-9.5" x2="102.9140625" x1="-102.9140625" class="divider"/><line y2="6.5" y1="6.5" x2="102.9140625" x1="-102.9140625" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -12.453125, -32)" height="18" width="24.90625" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Div</span></div></foreignObject><foreignObject transform="translate( -95.4140625, 14)" height="18" width="190.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double op(double,double)</span></div></foreignObject></g></g><g transform="translate(622.5703125, 566.5)" data-id="Mul" data-node="true" id="classId-Mul-7" class="node default"><rect height="79" width="205.828125" y="-39.5" x="-102.9140625" class="outer title-state" style=""/><line y2="-9.5" y1="-9.5" x2="102.9140625" x1="-102.9140625" class="divider"/><line y2="6.5" y1="6.5" x2="102.9140625" x1="-102.9140625" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -13.7734375, -32)" height="18" width="27.546875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Mul</span></div></foreignObject><foreignObject transform="translate( -95.4140625, 14)" height="18" width="190.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double op(double,double)</span></div></foreignObject></g></g><g transform="translate(878.3984375, 566.5)" data-id="Sub" data-node="true" id="classId-Sub-8" class="node default"><rect height="79" width="205.828125" y="-39.5" x="-102.9140625" class="outer title-state" style=""/><line y2="-9.5" y1="-9.5" x2="102.9140625" x1="-102.9140625" class="divider"/><line y2="6.5" y1="6.5" x2="102.9140625" x1="-102.9140625" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -15.109375, -32)" height="18" width="30.21875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Sub</span></div></foreignObject><foreignObject transform="translate( -95.4140625, 14)" height="18" width="190.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double op(double,double)</span></div></foreignObject></g></g><g transform="translate(760.21875, 58.5)" data-id="Environment" data-node="true" id="classId-Environment-9" class="node default"><rect height="101" width="167.546875" y="-50.5" x="-83.7734375" class="outer title-state" style=""/><line y2="1.5" y1="1.5" x2="83.7734375" x1="-83.7734375" class="divider"/><line y2="17.5" y1="17.5" x2="83.7734375" x1="-83.7734375" class="divider"/><g class="label"><foreignObject transform="translate( -39.5859375, -43)" height="18" width="79.171875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">«interface»</span></div></foreignObject><foreignObject transform="translate( -48.8984375, -21)" height="18" width="97.796875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Environment</span></div></foreignObject><foreignObject transform="translate( -76.2734375, 25)" height="18" width="152.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double value(String)</span></div></foreignObject></g></g><g transform="translate(971.078125, 58.5)" data-id="TestExpr" data-node="true" id="classId-TestExpr-10" class="node default"><rect height="79" width="154.171875" y="-39.5" x="-77.0859375" class="outer title-state" style=""/><line y2="-9.5" y1="-9.5" x2="77.0859375" x1="-77.0859375" class="divider"/><line y2="6.5" y1="6.5" x2="77.0859375" x1="-77.0859375" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -33.640625, -32)" height="18" width="67.28125" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">TestExpr</span></div></foreignObject><foreignObject transform="translate( -69.5859375, 14)" height="18" width="139.171875"><div xmlns="http://www.w3.org/1999/xhtml" style="text-decoration: underline; display: inline-block; white-space: nowrap;"><span style="text-decoration:underline;" class="nodeLabel">+void main(String[])</span></div></foreignObject></g></g></g></g></g></svg>