Logic lang: Introduce EvalExpressionPredicate/Solver, LateExpression to abstract away expressions to be evaluated by the controller; Introdulce ListLiteral and TreeFormLiteral, deprecate LogicalValue.

This commit is contained in:
Fedor Isakov 2017-10-26 17:43:01 +02:00
parent 0ead14f24b
commit e154cbf82f
8 changed files with 649 additions and 103 deletions

View File

@ -101,7 +101,6 @@
<concept id="1177093525992" name="jetbrains.mps.lang.generator.structure.InlineTemplate_RuleConsequence" flags="lg" index="gft3U">
<child id="1177093586806" name="templateNode" index="gfFT$" />
</concept>
<concept id="1168559333462" name="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" flags="ln" index="j$656" />
<concept id="1168559512253" name="jetbrains.mps.lang.generator.structure.DismissTopMappingRule" flags="lg" index="j$LIH">
<child id="1169669152123" name="generatorMessage" index="1lHHLF" />
</concept>
@ -282,32 +281,93 @@
<property role="3GE5qa" value="" />
<node concept="3aamgX" id="1pt0VTMwlBi" role="3acgRq">
<ref role="30HIoZ" to="5j4j:6$jH9oLmUCq" resolve="TreeFormExpression" />
<node concept="j$656" id="6yEjedms87m" role="1lVwrX">
<ref role="v9R2y" node="35Lj3TiT1Wl" resolve="Ast_Builder" />
<node concept="gft3U" id="5WBVN_MEXNj" role="1lVwrX">
<node concept="1eOMI4" id="5WBVN_MEXPm" role="gfFT$">
<node concept="10Nm6u" id="5WBVN_MEXPn" role="1eOMHV">
<node concept="29HgVG" id="5WBVN_MEXPo" role="lGtFl">
<node concept="3NFfHV" id="5WBVN_MEXPp" role="3NFExx">
<node concept="3clFbS" id="5WBVN_MEXPq" role="2VODD2">
<node concept="3clFbF" id="5WBVN_MEXPr" role="3cqZAp">
<node concept="2OqwBi" id="5WBVN_MEXPs" role="3clFbG">
<node concept="3TrEf2" id="5WBVN_MEXPt" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:6$jH9oLmVNm" resolve="root" />
</node>
<node concept="30H73N" id="5WBVN_MEXPu" role="2Oq$k0" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3aamgX" id="5WBVN_METeG" role="3acgRq">
<ref role="30HIoZ" to="5j4j:5WBVN_MESCN" resolve="TreeFormLiteral" />
<node concept="gft3U" id="5WBVN_MEYWj" role="1lVwrX">
<node concept="1eOMI4" id="5WBVN_MEYWk" role="gfFT$">
<node concept="10Nm6u" id="5WBVN_MEYWl" role="1eOMHV">
<node concept="29HgVG" id="5WBVN_MEYWm" role="lGtFl">
<node concept="3NFfHV" id="5WBVN_MEYWn" role="3NFExx">
<node concept="3clFbS" id="5WBVN_MEYWo" role="2VODD2">
<node concept="3clFbF" id="5WBVN_MEYWp" role="3cqZAp">
<node concept="2OqwBi" id="5WBVN_MEYWq" role="3clFbG">
<node concept="3TrEf2" id="5WBVN_MEZfu" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:5WBVN_MESCO" resolve="root" />
</node>
<node concept="30H73N" id="5WBVN_MEYWs" role="2Oq$k0" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3aamgX" id="428_4iYhBrH" role="3acgRq">
<ref role="30HIoZ" to="5j4j:428_4iYhwbR" resolve="ListExpression" />
<node concept="gft3U" id="428_4iYhEyT" role="1lVwrX">
<node concept="2YIFZM" id="428_4iYhEzd" role="gfFT$">
<ref role="37wK5l" to="6exd:6YPNC4OEDj2" resolve="create" />
<ref role="1Pybhc" to="6exd:6YPNC4OECgm" resolve="ListRole" />
<node concept="2YIFZM" id="428_4iYQBwm" role="37wK5m">
<ref role="37wK5l" to="6exd:428_4iYQuPn" resolve="listSymbol" />
<ref role="1Pybhc" to="6exd:6YPNC4OECgm" resolve="ListRole" />
<node concept="10Nm6u" id="5WBVN_MJhDN" role="gfFT$">
<node concept="29HgVG" id="5WBVN_MJhDX" role="lGtFl">
<node concept="3NFfHV" id="5WBVN_MJhE3" role="3NFExx">
<node concept="3clFbS" id="5WBVN_MJhE4" role="2VODD2">
<node concept="3clFbF" id="5WBVN_MJhHs" role="3cqZAp">
<node concept="2OqwBi" id="5WBVN_MJhR1" role="3clFbG">
<node concept="30H73N" id="5WBVN_MJhHr" role="2Oq$k0" />
<node concept="3TrEf2" id="5WBVN_MJi1R" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:5WBVN_MJ9$7" resolve="literal" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2YIFZM" id="428_4iYhHNa" role="37wK5m">
<ref role="37wK5l" to="6exd:1OShD0HS45f" resolve="createList" />
</node>
</node>
</node>
<node concept="3aamgX" id="5WBVN_MJ51w" role="3acgRq">
<ref role="30HIoZ" to="5j4j:5WBVN_MJ50y" resolve="ListLiteral" />
<node concept="gft3U" id="5WBVN_MJ8nE" role="1lVwrX">
<node concept="2YIFZM" id="5WBVN_MJ8nF" role="gfFT$">
<ref role="1Pybhc" to="6exd:6YPNC4OECgm" resolve="ListRole" />
<ref role="37wK5l" to="6exd:6YPNC4OEDj2" resolve="create" />
<node concept="2YIFZM" id="5WBVN_MJ8nG" role="37wK5m">
<ref role="1Pybhc" to="6exd:6YPNC4OECgm" resolve="ListRole" />
<ref role="37wK5l" to="6exd:428_4iYQuPn" resolve="listSymbol" />
</node>
<node concept="2YIFZM" id="5WBVN_MJ8nH" role="37wK5m">
<ref role="1Pybhc" to="6exd:3OPtF03lco4" resolve="ListNode" />
<node concept="10Nm6u" id="428_4iYhHSl" role="37wK5m">
<node concept="2b32R4" id="428_4iYhHYj" role="lGtFl">
<node concept="3JmXsc" id="428_4iYhHYl" role="2P8S$">
<node concept="3clFbS" id="428_4iYhHYn" role="2VODD2">
<node concept="3clFbF" id="428_4iYhI6a" role="3cqZAp">
<node concept="2OqwBi" id="428_4iYhIi5" role="3clFbG">
<node concept="30H73N" id="428_4iYhI69" role="2Oq$k0" />
<node concept="3Tsc0h" id="428_4iYhIup" role="2OqNvi">
<ref role="3TtcxE" to="5j4j:428_4iYhwbV" resolve="contents" />
<ref role="37wK5l" to="6exd:1OShD0HS45f" resolve="createList" />
<node concept="10Nm6u" id="5WBVN_MJ8nI" role="37wK5m">
<node concept="2b32R4" id="5WBVN_MJ8nJ" role="lGtFl">
<node concept="3JmXsc" id="5WBVN_MJ8nK" role="2P8S$">
<node concept="3clFbS" id="5WBVN_MJ8nL" role="2VODD2">
<node concept="3clFbF" id="5WBVN_MJ8nM" role="3cqZAp">
<node concept="2OqwBi" id="5WBVN_MJ8nN" role="3clFbG">
<node concept="30H73N" id="5WBVN_MJ8nO" role="2Oq$k0" />
<node concept="3Tsc0h" id="5WBVN_MJ8nP" role="2OqNvi">
<ref role="3TtcxE" to="5j4j:5WBVN_MJ50Y" resolve="contents" />
</node>
</node>
</node>
@ -969,27 +1029,6 @@
</node>
</node>
</node>
<node concept="3aamgX" id="1mP5b6jMGjF" role="3acgRq">
<ref role="30HIoZ" to="5j4j:7E86$tKskWj" resolve="LogicalValue" />
<node concept="gft3U" id="1mP5b6jMWqe" role="1lVwrX">
<node concept="10Nm6u" id="1mP5b6jMWs0" role="gfFT$">
<node concept="29HgVG" id="1mP5b6jMWt0" role="lGtFl">
<node concept="3NFfHV" id="1mP5b6jMWt1" role="3NFExx">
<node concept="3clFbS" id="1mP5b6jMWt2" role="2VODD2">
<node concept="3clFbF" id="1mP5b6jMWt8" role="3cqZAp">
<node concept="2OqwBi" id="1mP5b6jMWt3" role="3clFbG">
<node concept="3TrEf2" id="1mP5b6jMWt6" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:7E86$tKsqnr" resolve="code" />
</node>
<node concept="30H73N" id="1mP5b6jMWt7" role="2Oq$k0" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3aamgX" id="1mP5b6jMx78" role="3acgRq">
<ref role="30HIoZ" to="5j4j:7E86$tKt5sV" resolve="ExpressionLogicalVariable" />
<node concept="gft3U" id="1mP5b6jMxSQ" role="1lVwrX">

View File

@ -2417,29 +2417,53 @@
<node concept="24kQdi" id="428_4iYhwbX">
<ref role="1XX52x" to="5j4j:428_4iYhwbR" resolve="ListExpression" />
<node concept="3EZMnI" id="428_4iYhAer" role="2wV5jI">
<node concept="3F0ifn" id="428_4iYhAey" role="3EZMnx">
<property role="3F0ifm" value="[" />
<node concept="11LMrY" id="428_4iYhAeX" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="3F1sOY" id="5WBVN_MJfMF" role="3EZMnx">
<ref role="1NtTu8" to="5j4j:5WBVN_MJ9$7" resolve="literal" />
</node>
<node concept="3F2HdR" id="428_4iYhAeK" role="3EZMnx">
<property role="2czwfO" value="," />
<ref role="1NtTu8" to="5j4j:428_4iYhwbV" resolve="contents" />
<node concept="l2Vlx" id="428_4iYhAeM" role="2czzBx" />
<node concept="tppnM" id="428_4iYhAeT" role="sWeuL">
<node concept="11L4FC" id="428_4iYhAeV" role="3F10Kt">
<node concept="3EZMnI" id="5WBVN_MKxtP" role="3EZMnx">
<node concept="VPM3Z" id="5WBVN_MKxtR" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
<node concept="l2Vlx" id="5WBVN_MKxtU" role="2iSdaV" />
<node concept="3F0ifn" id="428_4iYhAey" role="3EZMnx">
<property role="3F0ifm" value="[" />
<node concept="11LMrY" id="428_4iYhAeX" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="428_4iYhAf1" role="2czzBI">
<property role="ilYzB" value="&lt;empty&gt;" />
<node concept="3F2HdR" id="428_4iYhAeK" role="3EZMnx">
<property role="2czwfO" value="," />
<ref role="1NtTu8" to="5j4j:428_4iYhwbV" resolve="contents" />
<node concept="l2Vlx" id="428_4iYhAeM" role="2czzBx" />
<node concept="tppnM" id="428_4iYhAeT" role="sWeuL">
<node concept="11L4FC" id="428_4iYhAeV" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="428_4iYhAf1" role="2czzBI">
<property role="ilYzB" value="&lt;empty&gt;" />
</node>
</node>
</node>
<node concept="3F0ifn" id="428_4iYhAeC" role="3EZMnx">
<property role="3F0ifm" value="]" />
<node concept="11L4FC" id="428_4iYivKH" role="3F10Kt">
<property role="VOm3f" value="true" />
<node concept="3F0ifn" id="428_4iYhAeC" role="3EZMnx">
<property role="3F0ifm" value="]" />
<node concept="11L4FC" id="428_4iYivKH" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="pkWqt" id="5WBVN_MKy3w" role="pqm2j">
<node concept="3clFbS" id="5WBVN_MKy3x" role="2VODD2">
<node concept="3clFbF" id="5WBVN_MJa6E" role="3cqZAp">
<node concept="2OqwBi" id="5WBVN_MJcsK" role="3clFbG">
<node concept="2OqwBi" id="5WBVN_MJajB" role="2Oq$k0">
<node concept="pncrf" id="5WBVN_MJa6D" role="2Oq$k0" />
<node concept="3Tsc0h" id="5WBVN_MJaBS" role="2OqNvi">
<ref role="3TtcxE" to="5j4j:428_4iYhwbV" resolve="contents" />
</node>
</node>
<node concept="3GX2aA" id="5WBVN_MJfnF" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="l2Vlx" id="428_4iYhAeu" role="2iSdaV" />
@ -2480,30 +2504,79 @@
<node concept="3p36aQ" id="5f6wxQ3kFVR">
<property role="3GE5qa" value="logical" />
<ref role="aqKnT" to="5j4j:7E86$tKskWj" resolve="LogicalValue" />
<node concept="3eGOop" id="5f6wxQ3kFVU" role="3ft7WO">
<ref role="3EoQqy" to="5j4j:7E86$tKskWj" resolve="LogicalValue" />
<node concept="ucgPf" id="5f6wxQ3kFVW" role="3aKz83">
<node concept="3clFbS" id="5f6wxQ3kFVY" role="2VODD2">
<node concept="3clFbF" id="5f6wxQ3kGyB" role="3cqZAp">
<node concept="2ShNRf" id="5f6wxQ3kGy_" role="3clFbG">
<node concept="3zrR0B" id="5f6wxQ3kOG$" role="2ShVmc">
<node concept="3Tqbb2" id="5f6wxQ3kOGA" role="3zrR0E">
<ref role="ehGHo" to="5j4j:7E86$tKskWj" resolve="LogicalValue" />
</node>
<node concept="24kQdi" id="5WBVN_MJ50z">
<ref role="1XX52x" to="5j4j:5WBVN_MJ50y" resolve="ListLiteral" />
<node concept="3EZMnI" id="5WBVN_MJ50C" role="2wV5jI">
<node concept="3F0ifn" id="5WBVN_MJ50D" role="3EZMnx">
<property role="3F0ifm" value="[" />
<node concept="11LMrY" id="5WBVN_MJ50E" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F2HdR" id="5WBVN_MJ50F" role="3EZMnx">
<property role="2czwfO" value="," />
<ref role="1NtTu8" to="5j4j:428_4iYhwbV" resolve="contents" />
<node concept="l2Vlx" id="5WBVN_MJ50G" role="2czzBx" />
<node concept="tppnM" id="5WBVN_MJ50H" role="sWeuL">
<node concept="11L4FC" id="5WBVN_MJ50I" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="5WBVN_MJ50J" role="2czzBI">
<property role="ilYzB" value="&lt;empty&gt;" />
</node>
</node>
<node concept="3F0ifn" id="5WBVN_MJ50K" role="3EZMnx">
<property role="3F0ifm" value="]" />
<node concept="11L4FC" id="5WBVN_MJ50L" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="l2Vlx" id="5WBVN_MJ50M" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="5WBVN_MPIur">
<property role="3GE5qa" value="logical" />
<ref role="1XX52x" to="5j4j:5WBVN_MESCN" resolve="TreeFormLiteral" />
<node concept="3EZMnI" id="5WBVN_MPIuK" role="2wV5jI">
<ref role="1k5W1q" node="7ksQUDZtGfa" resolve="Value" />
<node concept="3Xmtl4" id="5WBVN_MPIuL" role="3F10Kt">
<node concept="1wgc9g" id="5WBVN_MPIuM" role="3XvnJa">
<ref role="1wgcnl" node="7ksQUDZx8O3" resolve="ValueBrackets" />
</node>
</node>
<node concept="3F0ifn" id="5WBVN_MPIuN" role="3EZMnx">
<node concept="VPM3Z" id="5WBVN_MPIuO" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
</node>
<node concept="3F1sOY" id="5WBVN_MPIuP" role="3EZMnx">
<ref role="1NtTu8" to="5j4j:5WBVN_MESCO" resolve="root" />
</node>
<node concept="3F0ifn" id="5WBVN_MPIuQ" role="3EZMnx">
<property role="3F0ifm" value="" />
<node concept="VPM3Z" id="5WBVN_MPIuR" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
</node>
<node concept="l2Vlx" id="5WBVN_MPIuS" role="2iSdaV" />
<node concept="2Hnlc$" id="5WBVN_MPIuT" role="2whIAn">
<node concept="3clFbS" id="5WBVN_MPIuU" role="2VODD2">
<node concept="3clFbF" id="5WBVN_MPIuV" role="3cqZAp">
<node concept="2OqwBi" id="5WBVN_MPIuW" role="3clFbG">
<node concept="2ShNRf" id="5WBVN_MPIuX" role="2Oq$k0">
<node concept="3g6Rrh" id="5WBVN_MPIuY" role="2ShVmc">
<node concept="17QB3L" id="5WBVN_MPIuZ" role="3g7fb8" />
</node>
</node>
<node concept="39bAoz" id="5WBVN_MPIv0" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="16NfWO" id="5f6wxQ3kPcS" role="upBLP">
<node concept="2h3Zct" id="5f6wxQ3kPgX" role="16NeZM">
<property role="2h4Kg1" value="`" />
</node>
</node>
<node concept="16NL0t" id="5f6wxQ3kOOv" role="upBLP">
<node concept="2h3Zct" id="5f6wxQ3kOSx" role="16NL0q">
<property role="2h4Kg1" value="logical value" />
</node>
<node concept="lj46D" id="5WBVN_MPIv1" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
</node>

View File

@ -205,6 +205,7 @@
<property role="IQ2ns" value="8829335963591353819" />
<ref role="20lvS9" to="tpee:fz3vP1J" resolve="Expression" />
</node>
<node concept="asaX9" id="5WBVN_MT8qr" role="lGtFl" />
</node>
<node concept="1TIwiD" id="7E86$tKsl45">
<property role="TrG5h" value="LogicalItem" />
@ -403,6 +404,40 @@
<property role="20kJfa" value="contents" />
<property role="20lbJX" value="0..n" />
<ref role="20lvS9" node="5lJXKARS0" resolve="TreeForm" />
<node concept="asaX9" id="5WBVN_MJ510" role="lGtFl" />
</node>
<node concept="1TJgyj" id="5WBVN_MJ9$7" role="1TKVEi">
<property role="IQ2ns" value="6856711987712006407" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="literal" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="5WBVN_MJ50y" resolve="ListLiteral" />
</node>
</node>
<node concept="1TIwiD" id="5WBVN_MESCN">
<property role="EcuMT" value="6856711987710888499" />
<property role="3GE5qa" value="logical" />
<property role="TrG5h" value="TreeFormLiteral" />
<ref role="1TJDcQ" node="7E86$tKsl45" resolve="LogicalItem" />
<node concept="1TJgyj" id="5WBVN_MESCO" role="1TKVEi">
<property role="IQ2ns" value="6856711987710888500" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="root" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="5lJXKARS0" resolve="TreeForm" />
</node>
</node>
<node concept="1TIwiD" id="5WBVN_MJ50y">
<property role="EcuMT" value="6856711987711987746" />
<property role="TrG5h" value="ListLiteral" />
<property role="34LRSv" value="list" />
<ref role="1TJDcQ" node="7E86$tKsl45" resolve="LogicalItem" />
<node concept="1TJgyj" id="5WBVN_MJ50Y" role="1TKVEi">
<property role="IQ2ns" value="6856711987711987774" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="contents" />
<property role="20lbJX" value="0..n" />
<ref role="20lvS9" node="5lJXKARS0" resolve="TreeForm" />
</node>
</node>
</model>

View File

@ -952,32 +952,6 @@
<ref role="1YaFvo" to="5j4j:dfChU1zo4B" resolve="Splice" />
</node>
</node>
<node concept="1YbPZF" id="1_iD3HAeW0h">
<property role="TrG5h" value="typeof_LogicalValue" />
<property role="3GE5qa" value="logical" />
<node concept="3clFbS" id="1_iD3HAeW0i" role="18ibNy">
<node concept="1Z5TYs" id="4pNU3yqjDGK" role="3cqZAp">
<node concept="mw_s8" id="4pNU3yqjDGO" role="1ZfhK$">
<node concept="1Z2H0r" id="4pNU3yqjDGP" role="mwGJk">
<node concept="1YBJjd" id="4pNU3yqjDGQ" role="1Z2MuG">
<ref role="1YBMHb" node="1_iD3HAeW0k" resolve="logicalValue" />
</node>
</node>
</node>
<node concept="mw_s8" id="65DJywF0VF8" role="1ZfhKB">
<node concept="2pJPEk" id="65DJywF0VF4" role="mwGJk">
<node concept="2pJPED" id="65DJywF0VFj" role="2pJPEn">
<ref role="2pJxaS" to="5j4j:1mP5b6jNC0S" resolve="LogicalType" />
</node>
</node>
</node>
</node>
</node>
<node concept="1YaCAy" id="1_iD3HAeW0k" role="1YuTPh">
<property role="TrG5h" value="logicalValue" />
<ref role="1YaFvo" to="5j4j:7E86$tKskWj" resolve="LogicalValue" />
</node>
</node>
<node concept="2sgARr" id="7HUwyZb1IYy">
<property role="3GE5qa" value="logical" />
<property role="TrG5h" value="supertypesOf_MultiLogicalType" />

View File

@ -20,6 +20,9 @@
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1080223426719" name="jetbrains.mps.baseLanguage.structure.OrExpression" flags="nn" index="22lmx$" />
<concept id="1219920932475" name="jetbrains.mps.baseLanguage.structure.VariableArityType" flags="in" index="8X2XB">
<child id="1219921048460" name="componentType" index="8Xvag" />
</concept>
<concept id="1082485599095" name="jetbrains.mps.baseLanguage.structure.BlockStatement" flags="nn" index="9aQIb">
<child id="1082485599096" name="statements" index="9aQI4" />
</concept>
@ -228,7 +231,22 @@
<reference id="1116615189566" name="classifier" index="3VsUkX" />
</concept>
</language>
<language id="f2801650-65d5-424e-bb1b-463a8781b786" name="jetbrains.mps.baseLanguage.javadoc">
<concept id="5349172909345501395" name="jetbrains.mps.baseLanguage.javadoc.structure.BaseDocComment" flags="ng" index="P$AiS">
<child id="8465538089690331502" name="body" index="TZ5H$" />
</concept>
<concept id="5349172909345532724" name="jetbrains.mps.baseLanguage.javadoc.structure.MethodDocComment" flags="ng" index="P$JXv" />
<concept id="8465538089690331500" name="jetbrains.mps.baseLanguage.javadoc.structure.CommentLine" flags="ng" index="TZ5HA">
<child id="8970989240999019149" name="part" index="1dT_Ay" />
</concept>
<concept id="8970989240999019143" name="jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart" flags="ng" index="1dT_AC">
<property id="8970989240999019144" name="text" index="1dT_AB" />
</concept>
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
<child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
</concept>
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
@ -1161,6 +1179,16 @@
</node>
</node>
</node>
<node concept="P$JXv" id="5WBVN_M0Tbf" role="lGtFl">
<node concept="TZ5HA" id="5WBVN_M0U54" role="TZ5H$">
<node concept="1dT_AC" id="5WBVN_M0U9o" role="1dT_Ay">
<property role="1dT_AB" value="FIXME: not used, delete me" />
</node>
</node>
</node>
<node concept="2AHcQZ" id="5WBVN_M0Tbi" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Deprecated" resolve="Deprecated" />
</node>
</node>
<node concept="2tJIrI" id="4sSe4$oZQjr" role="jymVt" />
<node concept="3Tm1VV" id="4TCblo5ZkfJ" role="1B3o_S" />
@ -1724,5 +1752,43 @@
</node>
</node>
</node>
<node concept="3HP615" id="5WBVN_M1BKE">
<property role="TrG5h" value="LateExpression" />
<node concept="2tJIrI" id="5WBVN_M1BL8" role="jymVt" />
<node concept="3clFb_" id="5WBVN_M1BSf" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="metaArgs" />
<node concept="10Q1$e" id="5WBVN_MlESz" role="3clF45">
<node concept="3uibUv" id="5WBVN_MlERY" role="10Q1$1">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="3Tm1VV" id="5WBVN_M1BSi" role="1B3o_S" />
<node concept="3clFbS" id="5WBVN_M1BSj" role="3clF47" />
</node>
<node concept="2tJIrI" id="5WBVN_M1BRL" role="jymVt" />
<node concept="3clFb_" id="5WBVN_M1BLN" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="eval" />
<node concept="37vLTG" id="5WBVN_M1BNS" role="3clF46">
<property role="TrG5h" value="args" />
<node concept="8X2XB" id="5WBVN_M1BOF" role="1tU5fm">
<node concept="3uibUv" id="5WBVN_M1BOh" role="8Xvag">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
<node concept="16syzq" id="5WBVN_M1BQX" role="3clF45">
<ref role="16sUi3" node="5WBVN_M1BQ$" resolve="T" />
</node>
<node concept="3Tm1VV" id="5WBVN_M1BLQ" role="1B3o_S" />
<node concept="3clFbS" id="5WBVN_M1BLR" role="3clF47" />
</node>
<node concept="2tJIrI" id="5WBVN_M1BLq" role="jymVt" />
<node concept="3Tm1VV" id="5WBVN_M1BKF" role="1B3o_S" />
<node concept="16euLQ" id="5WBVN_M1BQ$" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
</model>

View File

@ -1188,6 +1188,11 @@
</node>
</node>
<node concept="3clFbS" id="3F6vMxqo28Y" role="3clF47">
<node concept="3SKdUt" id="5WBVN_M2BrC" role="3cqZAp">
<node concept="3SKdUq" id="5WBVN_M2BrE" role="3SKWNk">
<property role="3SKdUp" value="FIXME: hardcoded predicate symbols" />
</node>
</node>
<node concept="3clFbJ" id="7ISVfSIIXN" role="3cqZAp">
<node concept="3clFbS" id="7ISVfSIIXO" role="3clFbx">
<node concept="3clFbF" id="7ISVfSIVrg" role="3cqZAp">
@ -1382,6 +1387,36 @@
<node concept="3clFbH" id="7ISVfSJ2Nu" role="3cqZAp" />
</node>
</node>
<node concept="3eNFk2" id="5WBVN_M2BFT" role="3eNLev">
<node concept="2OqwBi" id="5WBVN_M2D8w" role="3eO9$A">
<node concept="10M0yZ" id="5WBVN_M2Csc" role="2Oq$k0">
<ref role="3cqZAo" node="5WBVN_M2qrL" resolve="EVAL_SYM" />
<ref role="1PxDUh" node="5WBVN_M1SJ9" resolve="EvalExpressionPredicate" />
</node>
<node concept="liA8E" id="5WBVN_M2Ddu" role="2OqNvi">
<ref role="37wK5l" to="av0y:~Symbol.equals(java.lang.Object):boolean" resolve="equals" />
<node concept="37vLTw" id="5WBVN_M2Dmh" role="37wK5m">
<ref role="3cqZAo" node="3F6vMxqo28U" resolve="symbol" />
</node>
</node>
</node>
<node concept="3clFbS" id="5WBVN_M2BFV" role="3eOfB_">
<node concept="3clFbF" id="5WBVN_M2XFf" role="3cqZAp">
<node concept="1rXfSq" id="5WBVN_M2YNo" role="3clFbG">
<ref role="37wK5l" to="w7la:~SessionSolver.registerSolver(jetbrains.mps.logic.reactor.program.PredicateSymbol,jetbrains.mps.logic.reactor.evaluation.AbstractSolver):void" resolve="registerSolver" />
<node concept="37vLTw" id="5WBVN_M2Y2h" role="37wK5m">
<ref role="3cqZAo" node="3F6vMxqo28U" resolve="symbol" />
</node>
<node concept="2ShNRf" id="5WBVN_M2Y63" role="37wK5m">
<node concept="HV5vD" id="5WBVN_M2Yj7" role="2ShVmc">
<ref role="HV5vE" to="omn0:5WBVN_M2Qf9" resolve="EvalExpressionSolver" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5WBVN_M2Dsg" role="3cqZAp" />
</node>
</node>
<node concept="3eNFk2" id="1ggxSI7qGPJ" role="3eNLev">
<node concept="3clFbS" id="1ggxSI7qGPO" role="3eOfB_">
<node concept="3clFbJ" id="1ggxSI7xGoB" role="3cqZAp">
@ -1499,5 +1534,81 @@
</node>
</node>
</node>
<node concept="312cEu" id="5WBVN_M1SJ9">
<property role="TrG5h" value="EvalExpressionPredicate" />
<node concept="2tJIrI" id="5WBVN_M1T_3" role="jymVt" />
<node concept="3clFbW" id="5WBVN_M1T_o" role="jymVt">
<node concept="37vLTG" id="5WBVN_M1TK8" role="3clF46">
<property role="TrG5h" value="expression" />
<node concept="3uibUv" id="5WBVN_M3lXg" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="3cqZAl" id="5WBVN_M1T_q" role="3clF45" />
<node concept="3Tm1VV" id="5WBVN_M1T_r" role="1B3o_S" />
<node concept="3clFbS" id="5WBVN_M1T_s" role="3clF47">
<node concept="XkiVB" id="5WBVN_M1Upn" role="3cqZAp">
<ref role="37wK5l" node="6Kcfpq7B1f7" resolve="AbstractPredicate" />
<node concept="37vLTw" id="5WBVN_M1Utw" role="37wK5m">
<ref role="3cqZAo" node="5WBVN_M1TK8" resolve="expression" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="5WBVN_M2QU_" role="jymVt" />
<node concept="3clFb_" id="5WBVN_M1UHN" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="symbol" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="3Tm1VV" id="5WBVN_M1UHO" role="1B3o_S" />
<node concept="3uibUv" id="5WBVN_M1Vot" role="3clF45">
<ref role="3uigEE" to="av0y:~PredicateSymbol" resolve="PredicateSymbol" />
</node>
<node concept="3clFbS" id="5WBVN_M1UHV" role="3clF47">
<node concept="3clFbF" id="5WBVN_M2w3K" role="3cqZAp">
<node concept="37vLTw" id="5WBVN_M2w3J" role="3clFbG">
<ref role="3cqZAo" node="5WBVN_M2qrL" resolve="EVAL_SYM" />
</node>
</node>
</node>
<node concept="2AHcQZ" id="5WBVN_M1UHW" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="5WBVN_M2v78" role="jymVt" />
<node concept="Wx3nA" id="5WBVN_M2tIe" role="jymVt">
<property role="3TUv4t" value="true" />
<property role="TrG5h" value="EVAL" />
<node concept="3Tm1VV" id="5WBVN_M2vBr" role="1B3o_S" />
<node concept="17QB3L" id="5WBVN_M2tIc" role="1tU5fm" />
<node concept="Xl_RD" id="5WBVN_M2tId" role="33vP2m">
<property role="Xl_RC" value="eval" />
</node>
</node>
<node concept="Wx3nA" id="5WBVN_M2qrL" role="jymVt">
<property role="TrG5h" value="EVAL_SYM" />
<property role="3TUv4t" value="true" />
<node concept="3uibUv" id="5WBVN_M1T$L" role="1tU5fm">
<ref role="3uigEE" to="av0y:~PredicateSymbol" resolve="PredicateSymbol" />
</node>
<node concept="3Tm1VV" id="5WBVN_M2vMw" role="1B3o_S" />
<node concept="2ShNRf" id="5WBVN_M2sgI" role="33vP2m">
<node concept="1pGfFk" id="5WBVN_M2sgq" role="2ShVmc">
<ref role="37wK5l" to="av0y:~PredicateSymbol.&lt;init&gt;(java.lang.String,int)" resolve="PredicateSymbol" />
<node concept="37vLTw" id="5WBVN_M2tIh" role="37wK5m">
<ref role="3cqZAo" node="5WBVN_M2tIe" resolve="EVAL" />
</node>
<node concept="3cmrfG" id="5WBVN_M2sxX" role="37wK5m">
<property role="3cmrfH" value="1" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="5WBVN_M1SJa" role="1B3o_S" />
<node concept="3uibUv" id="5WBVN_M1SK4" role="1zkMxy">
<ref role="3uigEE" node="6Kcfpq7B0Wu" resolve="AbstractPredicate" />
</node>
</node>
</model>

View File

@ -140,6 +140,9 @@
<child id="1206060619838" name="condition" index="3eO9$A" />
<child id="1206060644605" name="statementList" index="3eOfB_" />
</concept>
<concept id="1079359253375" name="jetbrains.mps.baseLanguage.structure.ParenthesizedExpression" flags="nn" index="1eOMI4">
<child id="1079359253376" name="expression" index="1eOMHV" />
</concept>
<concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
<child id="1081516765348" name="expression" index="3fr31v" />
</concept>
@ -911,6 +914,97 @@
<node concept="3clFbH" id="60zk4o6SxJv" role="3cqZAp" />
</node>
</node>
<node concept="3eNFk2" id="5WBVN_M1CZI" role="3eNLev">
<node concept="2ZW3vV" id="5WBVN_M1Djq" role="3eO9$A">
<node concept="3uibUv" id="5WBVN_M1Dpb" role="2ZW6by">
<ref role="3uigEE" to="yg8f:5WBVN_M1BKE" resolve="LateExpression" />
</node>
<node concept="37vLTw" id="5WBVN_M1DbI" role="2ZW6bz">
<ref role="3cqZAo" node="60zk4o6SxJP" resolve="a" />
</node>
</node>
<node concept="3clFbS" id="5WBVN_M1CZK" role="3eOfB_">
<node concept="3cpWs8" id="5WBVN_M1J07" role="3cqZAp">
<node concept="3cpWsn" id="5WBVN_M1J08" role="3cpWs9">
<property role="TrG5h" value="exp" />
<node concept="3uibUv" id="5WBVN_M1J02" role="1tU5fm">
<ref role="3uigEE" to="yg8f:5WBVN_M1BKE" resolve="LateExpression" />
<node concept="3qTvmN" id="5WBVN_M1J05" role="11_B2D" />
</node>
<node concept="1eOMI4" id="5WBVN_M1J09" role="33vP2m">
<node concept="10QFUN" id="5WBVN_M1J0a" role="1eOMHV">
<node concept="3uibUv" id="5WBVN_M1J0b" role="10QFUM">
<ref role="3uigEE" to="yg8f:5WBVN_M1BKE" resolve="LateExpression" />
<node concept="3qTvmN" id="5WBVN_M1J0c" role="11_B2D" />
</node>
<node concept="37vLTw" id="5WBVN_M1J0d" role="10QFUP">
<ref role="3cqZAo" node="60zk4o6SxJP" resolve="a" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="5WBVN_M1GEt" role="3cqZAp">
<node concept="3cpWsn" id="5WBVN_M1GEu" role="3cpWs9">
<property role="TrG5h" value="expArgs" />
<node concept="3uibUv" id="5WBVN_M1GEk" role="1tU5fm">
<ref role="3uigEE" to="33ny:~List" resolve="List" />
<node concept="3qTvmN" id="5WBVN_M1GEn" role="11_B2D" />
</node>
<node concept="1rXfSq" id="5WBVN_M1GEv" role="33vP2m">
<ref role="37wK5l" node="60zk4o6Suoh" resolve="instantiateArguments" />
<node concept="2YIFZM" id="5WBVN_MlGya" role="37wK5m">
<ref role="37wK5l" to="33ny:~Arrays.asList(java.lang.Object...):java.util.List" resolve="asList" />
<ref role="1Pybhc" to="33ny:~Arrays" resolve="Arrays" />
<node concept="2OqwBi" id="5WBVN_M1GEw" role="37wK5m">
<node concept="37vLTw" id="5WBVN_M1J0e" role="2Oq$k0">
<ref role="3cqZAo" node="5WBVN_M1J08" resolve="exp" />
</node>
<node concept="liA8E" id="5WBVN_M1GEA" role="2OqNvi">
<ref role="37wK5l" to="yg8f:5WBVN_M1BSf" resolve="metaArgs" />
</node>
</node>
</node>
<node concept="37vLTw" id="5WBVN_M1GEB" role="37wK5m">
<ref role="3cqZAo" node="60zk4o6Suop" resolve="logicalContext" />
</node>
</node>
</node>
</node>
<node concept="3SKdUt" id="5WBVN_M1MSf" role="3cqZAp">
<node concept="3SKdUq" id="5WBVN_M1MSh" role="3SKWNk">
<property role="3SKdUp" value="TODO: user code" />
</node>
</node>
<node concept="3clFbF" id="5WBVN_M1Hyh" role="3cqZAp">
<node concept="2OqwBi" id="5WBVN_M1HRh" role="3clFbG">
<node concept="37vLTw" id="5WBVN_M1Hyf" role="2Oq$k0">
<ref role="3cqZAo" node="60zk4o6SxJ1" resolve="res" />
</node>
<node concept="liA8E" id="5WBVN_M1IHI" role="2OqNvi">
<ref role="37wK5l" to="33ny:~ArrayList.add(java.lang.Object):boolean" resolve="add" />
<node concept="2OqwBi" id="5WBVN_M1JzG" role="37wK5m">
<node concept="37vLTw" id="5WBVN_M1JhL" role="2Oq$k0">
<ref role="3cqZAo" node="5WBVN_M1J08" resolve="exp" />
</node>
<node concept="liA8E" id="5WBVN_M1JVL" role="2OqNvi">
<ref role="37wK5l" to="yg8f:5WBVN_M1BLN" resolve="eval" />
<node concept="2OqwBi" id="5WBVN_M1KyJ" role="37wK5m">
<node concept="37vLTw" id="5WBVN_M1K7z" role="2Oq$k0">
<ref role="3cqZAo" node="5WBVN_M1GEu" resolve="expArgs" />
</node>
<node concept="liA8E" id="5WBVN_M1L1T" role="2OqNvi">
<ref role="37wK5l" to="33ny:~List.toArray():java.lang.Object[]" resolve="toArray" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5WBVN_M1Hs2" role="3cqZAp" />
</node>
</node>
<node concept="3clFbS" id="60zk4o6SxJw" role="3clFbx">
<node concept="3clFbF" id="60zk4o6SxJx" role="3cqZAp">
<node concept="2OqwBi" id="60zk4o6SxJy" role="3clFbG">

View File

@ -108,6 +108,8 @@
<child id="5680397130376446158" name="type" index="1tU5fm" />
</concept>
<concept id="1068580123132" name="jetbrains.mps.baseLanguage.structure.BaseMethodDeclaration" flags="ng" index="3clF44">
<property id="4276006055363816570" name="isSynchronized" index="od$2w" />
<property id="1181808852946" name="isFinal" index="DiZV1" />
<child id="1068580123133" name="returnType" index="3clF45" />
<child id="1068580123134" name="parameter" index="3clF46" />
<child id="1068580123135" name="body" index="3clF47" />
@ -4779,5 +4781,157 @@
<ref role="3uigEE" to="w7la:~AbstractSolver" resolve="AbstractSolver" />
</node>
</node>
<node concept="312cEu" id="5WBVN_M2Qf9">
<property role="TrG5h" value="EvalExpressionSolver" />
<node concept="2tJIrI" id="5WBVN_M2QLe" role="jymVt" />
<node concept="3clFb_" id="5WBVN_M2Qjm" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="ask" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="3Tm1VV" id="5WBVN_M2Qjn" role="1B3o_S" />
<node concept="10P_77" id="5WBVN_M2Qjp" role="3clF45" />
<node concept="37vLTG" id="5WBVN_M2Qjq" role="3clF46">
<property role="TrG5h" value="invocation" />
<node concept="3uibUv" id="5WBVN_M2Qjr" role="1tU5fm">
<ref role="3uigEE" to="w7la:~PredicateInvocation" resolve="PredicateInvocation" />
</node>
</node>
<node concept="3clFbS" id="5WBVN_M2Qjv" role="3clF47">
<node concept="3clFbJ" id="5WBVN_M2REh" role="3cqZAp">
<node concept="3clFbS" id="5WBVN_M2REj" role="3clFbx">
<node concept="YS8fn" id="5WBVN_M2SBd" role="3cqZAp">
<node concept="2ShNRf" id="5WBVN_M2SBI" role="YScLw">
<node concept="1pGfFk" id="5WBVN_M2TMF" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalArgumentException.&lt;init&gt;()" resolve="IllegalArgumentException" />
</node>
</node>
</node>
</node>
<node concept="3fqX7Q" id="5WBVN_M2REN" role="3clFbw">
<node concept="1eOMI4" id="5WBVN_M2RGy" role="3fr31v">
<node concept="2ZW3vV" id="5WBVN_M2Stl" role="1eOMHV">
<node concept="3uibUv" id="5WBVN_M2SAm" role="2ZW6by">
<ref role="3uigEE" to="cxk7:5WBVN_M1SJ9" resolve="EvalExpressionPredicate" />
</node>
<node concept="2OqwBi" id="5WBVN_M2ROo" role="2ZW6bz">
<node concept="37vLTw" id="5WBVN_M2RHi" role="2Oq$k0">
<ref role="3cqZAo" node="5WBVN_M2Qjq" resolve="invocation" />
</node>
<node concept="liA8E" id="5WBVN_M2RSG" role="2OqNvi">
<ref role="37wK5l" to="w7la:~PredicateInvocation.predicate():jetbrains.mps.logic.reactor.program.Predicate" resolve="predicate" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3SKdUt" id="5WBVN_M2TRc" role="3cqZAp">
<node concept="3SKdUq" id="5WBVN_M2TRe" role="3SKWNk">
<property role="3SKdUp" value="the expression has been evaluated while instantiating arguments" />
</node>
</node>
<node concept="3cpWs8" id="1v5snkI5ghX" role="3cqZAp">
<node concept="3cpWsn" id="1v5snkI5ghY" role="3cpWs9">
<property role="TrG5h" value="val" />
<node concept="3uibUv" id="1v5snkI5ghW" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
<node concept="2OqwBi" id="1v5snkI5ghZ" role="33vP2m">
<node concept="2OqwBi" id="1v5snkI5gi0" role="2Oq$k0">
<node concept="37vLTw" id="1v5snkI5gi1" role="2Oq$k0">
<ref role="3cqZAo" node="5WBVN_M2Qjq" resolve="invocation" />
</node>
<node concept="liA8E" id="1v5snkI5gi2" role="2OqNvi">
<ref role="37wK5l" to="w7la:~PredicateInvocation.arguments():java.util.List" resolve="arguments" />
</node>
</node>
<node concept="liA8E" id="1v5snkI5gi3" role="2OqNvi">
<ref role="37wK5l" to="33ny:~List.get(int):java.lang.Object" resolve="get" />
<node concept="3cmrfG" id="1v5snkI5gi4" role="37wK5m">
<property role="3cmrfH" value="0" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1v5snkI5gA9" role="3cqZAp">
<node concept="10QFUN" id="1v5snkI5gA6" role="3clFbG">
<node concept="3uibUv" id="1v5snkI5gC_" role="10QFUM">
<ref role="3uigEE" to="wyt6:~Boolean" resolve="Boolean" />
</node>
<node concept="37vLTw" id="1v5snkI5gDL" role="10QFUP">
<ref role="3cqZAo" node="1v5snkI5ghY" resolve="val" />
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="5WBVN_M2Qjw" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="5WBVN_M2Xj5" role="jymVt" />
<node concept="3clFb_" id="5WBVN_M2Qjb" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="tell" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="3Tm1VV" id="5WBVN_M2Qjc" role="1B3o_S" />
<node concept="3cqZAl" id="5WBVN_M2Qje" role="3clF45" />
<node concept="37vLTG" id="5WBVN_M2Qjf" role="3clF46">
<property role="TrG5h" value="invocation" />
<node concept="3uibUv" id="5WBVN_M2Qjg" role="1tU5fm">
<ref role="3uigEE" to="w7la:~PredicateInvocation" resolve="PredicateInvocation" />
</node>
</node>
<node concept="3clFbS" id="5WBVN_M2Qjk" role="3clF47">
<node concept="3clFbJ" id="2UGjFq4pFcR" role="3cqZAp">
<node concept="3clFbS" id="2UGjFq4pFcS" role="3clFbx">
<node concept="YS8fn" id="2UGjFq4pFcT" role="3cqZAp">
<node concept="2ShNRf" id="2UGjFq4pFcU" role="YScLw">
<node concept="1pGfFk" id="2UGjFq4pFcV" role="2ShVmc">
<ref role="37wK5l" to="w7la:~EvaluationFailureException.&lt;init&gt;(java.lang.String)" resolve="EvaluationFailureException" />
<node concept="3cpWs3" id="2UGjFq4pFcW" role="37wK5m">
<node concept="2OqwBi" id="2UGjFq4pGID" role="3uHU7w">
<node concept="2OqwBi" id="2UGjFq4pG$q" role="2Oq$k0">
<node concept="37vLTw" id="2UGjFq4pGyz" role="2Oq$k0">
<ref role="3cqZAo" node="5WBVN_M2Qjf" resolve="invocation" />
</node>
<node concept="liA8E" id="2UGjFq4pGBj" role="2OqNvi">
<ref role="37wK5l" to="w7la:~PredicateInvocation.predicate():jetbrains.mps.logic.reactor.program.Predicate" resolve="predicate" />
</node>
</node>
<node concept="liA8E" id="2UGjFq4pGMy" role="2OqNvi">
<ref role="37wK5l" to="av0y:~Predicate.symbol():jetbrains.mps.logic.reactor.program.PredicateSymbol" resolve="symbol" />
</node>
</node>
<node concept="Xl_RD" id="2UGjFq4pFcY" role="3uHU7B">
<property role="Xl_RC" value="unsatisfied predicate: " />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3fqX7Q" id="2UGjFq4pFcZ" role="3clFbw">
<node concept="1rXfSq" id="2UGjFq4pFd0" role="3fr31v">
<ref role="37wK5l" node="5WBVN_M2Qjm" resolve="ask" />
<node concept="37vLTw" id="2UGjFq4pGvi" role="37wK5m">
<ref role="3cqZAo" node="5WBVN_M2Qjf" resolve="invocation" />
</node>
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="5WBVN_M2Qjl" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="5WBVN_M2Qj4" role="jymVt" />
<node concept="3Tm1VV" id="5WBVN_M2Qfa" role="1B3o_S" />
<node concept="3uibUv" id="5WBVN_M2Qig" role="1zkMxy">
<ref role="3uigEE" to="w7la:~AbstractSolver" resolve="AbstractSolver" />
</node>
</node>
</model>