Refactoring out the abstract planning session API

This commit is contained in:
Fedor Isakov 2015-11-29 13:15:29 +01:00
parent 0aa9e33c28
commit 368ff175cf
9 changed files with 1662 additions and 1216 deletions

View File

@ -507,40 +507,6 @@
<node concept="312cEu" id="3Qp4N06byjn">
<property role="TrG5h" value="CollectRuleTemplates" />
<node concept="2tJIrI" id="3Qp4N06byjo" role="jymVt" />
<node concept="2YIFZL" id="4boqC9dMlht" role="jymVt">
<property role="TrG5h" value="createRulesHandler" />
<node concept="3Tm1VV" id="4boqC9dMnh$" role="1B3o_S" />
<node concept="3uibUv" id="4boqC9dMlhv" role="3clF45">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
<node concept="3clFbS" id="4boqC9dMlgg" role="3clF47">
<node concept="3cpWs6" id="4boqC9dMlhp" role="3cqZAp">
<node concept="2ShNRf" id="4boqC9dMlgm" role="3cqZAk">
<node concept="1pGfFk" id="4boqC9dMlgn" role="2ShVmc">
<ref role="37wK5l" to="9kr0:7eGEHDlcF69" resolve="ConstraintRulesHandler" />
<node concept="3cpWs3" id="4boqC9dNrXk" role="37wK5m">
<node concept="Xl_RD" id="4boqC9dNs3q" role="3uHU7B">
<property role="Xl_RC" value="typechecking" />
</node>
<node concept="37vLTw" id="4boqC9dMnMu" role="3uHU7w">
<ref role="3cqZAo" node="4boqC9dMnsk" resolve="nameHint" />
</node>
</node>
<node concept="2ShNRf" id="7ISVfSJNAZ" role="37wK5m">
<node concept="HV5vD" id="7ISVfSK4LO" role="2ShVmc">
<ref role="HV5vE" to="i8dg:7eGEHDldgwf" resolve="ConstraintRegistry" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="4boqC9dMnsk" role="3clF46">
<property role="TrG5h" value="nameHint" />
<node concept="17QB3L" id="4boqC9dMnsj" role="1tU5fm" />
</node>
</node>
<node concept="2tJIrI" id="3xj1UscsxoY" role="jymVt" />
<node concept="2YIFZL" id="3Qp4N06byjp" role="jymVt">
<property role="TrG5h" value="collect" />
<node concept="37vLTG" id="7rWjIq$Idyf" role="3clF46">
@ -552,9 +518,9 @@
<node concept="3Tqbb2" id="2Rw7mr8SiGS" role="1tU5fm" />
</node>
<node concept="37vLTG" id="4boqC9dMoIo" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="4boqC9dMpvu" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
<property role="TrG5h" value="planningSession" />
<node concept="3uibUv" id="78CwJJcT_Im" role="1tU5fm">
<ref role="3uigEE" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
</node>
<node concept="10Oyi0" id="3xj1Uscu7dI" role="3clF45" />
@ -617,7 +583,7 @@
<ref role="3cqZAo" node="3Qp4N06byjG" resolve="rtc" />
</node>
<node concept="37vLTw" id="4boqC9dMqD4" role="37wK5m">
<ref role="3cqZAo" node="4boqC9dMoIo" resolve="handler" />
<ref role="3cqZAo" node="4boqC9dMoIo" resolve="planningSession" />
</node>
</node>
</node>
@ -639,9 +605,9 @@
</node>
</node>
<node concept="37vLTG" id="3xj1UscsvA0" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="3xj1UscsvA1" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
<property role="TrG5h" value="planningSession" />
<node concept="3uibUv" id="78CwJJcT_SQ" role="1tU5fm">
<ref role="3uigEE" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
</node>
<node concept="3clFbS" id="3xj1UscsvyC" role="3clF47">
@ -686,7 +652,7 @@
</node>
</node>
</node>
<node concept="3clFbH" id="7nkyKX7sWVX" role="3cqZAp" />
<node concept="3clFbH" id="78CwJJcPU1v" role="3cqZAp" />
<node concept="3cpWs8" id="3xj1UscsvyE" role="3cqZAp">
<node concept="3cpWsn" id="3xj1UscsvyF" role="3cpWs9">
<property role="TrG5h" value="generator" />
@ -702,6 +668,9 @@
<node concept="37vLTw" id="7nkyKX7mVQb" role="37wK5m">
<ref role="3cqZAo" node="7nkyKX7mVqS" resolve="main" />
</node>
<node concept="37vLTw" id="78CwJJcTFJ6" role="37wK5m">
<ref role="3cqZAo" node="3xj1UscsvA0" resolve="planningSession" />
</node>
</node>
</node>
</node>
@ -734,9 +703,6 @@
</node>
<node concept="liA8E" id="7nkyKX7vEIf" role="2OqNvi">
<ref role="37wK5l" to="bdf1:5NuEpF1pL7f" resolve="generateAllWithNoInput" />
<node concept="37vLTw" id="7nkyKX7vEIg" role="37wK5m">
<ref role="3cqZAo" node="3xj1UscsvA0" resolve="handler" />
</node>
<node concept="3clFbT" id="7nkyKX7vETc" role="37wK5m">
<property role="3clFbU" value="false" />
</node>
@ -767,9 +733,6 @@
<node concept="37vLTw" id="7nkyKX7vF3C" role="37wK5m">
<ref role="3cqZAo" node="2Rw7mr8Sa0e" resolve="root" />
</node>
<node concept="37vLTw" id="7nkyKX7vF3D" role="37wK5m">
<ref role="3cqZAo" node="3xj1UscsvA0" resolve="handler" />
</node>
</node>
</node>
</node>
@ -794,9 +757,6 @@
</node>
<node concept="liA8E" id="7nkyKX7vFf6" role="2OqNvi">
<ref role="37wK5l" to="bdf1:5NuEpF1pL7f" resolve="generateAllWithNoInput" />
<node concept="37vLTw" id="7nkyKX7vFf7" role="37wK5m">
<ref role="3cqZAo" node="3xj1UscsvA0" resolve="handler" />
</node>
<node concept="3clFbT" id="7nkyKX7vFq7" role="37wK5m">
<property role="3clFbU" value="true" />
</node>
@ -827,9 +787,6 @@
<node concept="37vLTw" id="7nkyKX7vF$z" role="37wK5m">
<ref role="3cqZAo" node="2Rw7mr8Sa0e" resolve="root" />
</node>
<node concept="37vLTw" id="7nkyKX7vF$$" role="37wK5m">
<ref role="3cqZAo" node="3xj1UscsvA0" resolve="handler" />
</node>
</node>
</node>
</node>
@ -854,7 +811,7 @@
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object):java.lang.String" resolve="valueOf" />
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<node concept="37vLTw" id="7nkyKX7xHI0" role="37wK5m">
<ref role="3cqZAo" node="3xj1UscsvA0" resolve="handler" />
<ref role="3cqZAo" node="3xj1UscsvA0" resolve="planningSession" />
</node>
</node>
</node>
@ -5756,8 +5713,15 @@
<node concept="1QHqEO" id="1pPth$l_ZeS" role="3cqZAp">
<node concept="1QHqEC" id="1pPth$l_ZeT" role="1QHqEI">
<node concept="3clFbS" id="1pPth$l_ZeU" role="1bW5cS">
<node concept="SfApY" id="1pPth$l_ZeV" role="3cqZAp">
<node concept="3clFbS" id="1pPth$l_ZeW" role="SfCbr">
<node concept="2GUZhq" id="78CwJJd6btx" role="3cqZAp">
<node concept="3clFbS" id="1pPth$l_ZeW" role="2GV8ay">
<node concept="3clFbF" id="78CwJJd69l_" role="3cqZAp">
<node concept="2YIFZM" id="78CwJJd6avM" role="3clFbG">
<ref role="37wK5l" to="9kr0:78CwJJd1OHp" resolve="init" />
<ref role="1Pybhc" to="9kr0:7eGEHDlcEJ0" resolve="ChrPlanningSession" />
</node>
</node>
<node concept="3clFbH" id="78CwJJd6aYe" role="3cqZAp" />
<node concept="1DcWWT" id="1pPth$lGirV" role="3cqZAp">
<node concept="3clFbS" id="1pPth$lGirX" role="2LFqv$">
<node concept="3cpWs8" id="1pPth$l_ZeX" role="3cqZAp">
@ -5774,24 +5738,38 @@
</node>
</node>
</node>
<node concept="3cpWs8" id="1pPth$l_ZeO" role="3cqZAp">
<node concept="3cpWsn" id="1pPth$l_ZeP" role="3cpWs9">
<property role="TrG5h" value="rh" />
<node concept="3uibUv" id="1pPth$l_ZeQ" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
<node concept="2YIFZM" id="1pPth$l_Zf6" role="33vP2m">
<ref role="1Pybhc" node="3Qp4N06byjn" resolve="CollectRuleTemplates" />
<ref role="37wK5l" node="4boqC9dMlht" resolve="createRulesHandler" />
<node concept="2OqwBi" id="1pPth$l_Zf7" role="37wK5m">
<node concept="1PxgMI" id="1pPth$l_Zf8" role="2Oq$k0">
<ref role="1PxNhF" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
<node concept="37vLTw" id="1pPth$l_Zf9" role="1PxMeX">
<ref role="3cqZAo" node="1pPth$l_ZeY" resolve="containingRoot" />
</node>
<node concept="3cpWs8" id="78CwJJcTyWM" role="3cqZAp">
<node concept="3cpWsn" id="78CwJJcTyWt" role="3cpWs9">
<property role="TrG5h" value="nameHint" />
<node concept="17QB3L" id="78CwJJcTyWL" role="1tU5fm" />
<node concept="2OqwBi" id="1pPth$l_Zf7" role="33vP2m">
<node concept="1PxgMI" id="1pPth$l_Zf8" role="2Oq$k0">
<ref role="1PxNhF" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
<node concept="37vLTw" id="1pPth$l_Zf9" role="1PxMeX">
<ref role="3cqZAo" node="1pPth$l_ZeY" resolve="containingRoot" />
</node>
<node concept="3TrcHB" id="1pPth$l_Zfa" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
<node concept="3TrcHB" id="1pPth$l_Zfa" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="78CwJJcTyWU" role="3cqZAp">
<node concept="3cpWsn" id="78CwJJcTyWV" role="3cpWs9">
<property role="TrG5h" value="planningSession" />
<node concept="3uibUv" id="78CwJJcT$bg" role="1tU5fm">
<ref role="3uigEE" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
<node concept="2YIFZM" id="78CwJJcTIO5" role="33vP2m">
<ref role="37wK5l" to="rchb:78CwJJcPVHP" resolve="newSession" />
<ref role="1Pybhc" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
<node concept="3cpWs3" id="78CwJJcTyWZ" role="37wK5m">
<node concept="Xl_RD" id="78CwJJcTyX0" role="3uHU7B">
<property role="Xl_RC" value="typechecking" />
</node>
<node concept="37vLTw" id="78CwJJcTyX1" role="3uHU7w">
<ref role="3cqZAo" node="78CwJJcTyWt" resolve="nameHint" />
</node>
</node>
</node>
@ -5817,7 +5795,7 @@
<ref role="3cqZAo" node="1pPth$l_ZeY" resolve="containingRoot" />
</node>
<node concept="37vLTw" id="1pPth$lGtu6" role="37wK5m">
<ref role="3cqZAo" node="1pPth$l_ZeP" resolve="rh" />
<ref role="3cqZAo" node="78CwJJcTyWV" resolve="planningSession" />
</node>
</node>
</node>
@ -5825,11 +5803,11 @@
<node concept="3clFbF" id="1pPth$lGzsJ" role="3cqZAp">
<node concept="2OqwBi" id="1pPth$lG$rZ" role="3clFbG">
<node concept="37vLTw" id="1pPth$lGzsH" role="2Oq$k0">
<ref role="3cqZAo" node="1pPth$lE8Xs" resolve="ruleHandlers" />
<ref role="3cqZAo" node="1pPth$lE8Xs" resolve="planningSessions" />
</node>
<node concept="TSZUe" id="1pPth$lGArx" role="2OqNvi">
<node concept="37vLTw" id="1pPth$lGBka" role="25WWJ7">
<ref role="3cqZAo" node="1pPth$l_ZeP" resolve="rh" />
<ref role="3cqZAo" node="78CwJJcTyWV" resolve="planningSession" />
</node>
</node>
</node>
@ -5845,8 +5823,9 @@
<ref role="3cqZAo" node="1pPth$lD$Ft" resolve="nodes" />
</node>
</node>
<node concept="3clFbH" id="78CwJJd6c6R" role="3cqZAp" />
</node>
<node concept="TDmWw" id="1pPth$l_Zfk" role="TEbGg">
<node concept="TDmWw" id="1pPth$l_Zfk" role="TEXxN">
<node concept="3cpWsn" id="1pPth$l_Zfl" role="TDEfY">
<property role="TrG5h" value="e" />
<node concept="3uibUv" id="1pPth$l_Zfm" role="1tU5fm">
@ -5874,6 +5853,15 @@
</node>
</node>
</node>
<node concept="3clFbH" id="78CwJJd6cA4" role="3cqZAp" />
</node>
</node>
<node concept="3clFbS" id="78CwJJd6bt$" role="2GVbov">
<node concept="3clFbF" id="78CwJJd6d4x" role="3cqZAp">
<node concept="2YIFZM" id="78CwJJd6dzP" role="3clFbG">
<ref role="37wK5l" to="9kr0:78CwJJd218C" resolve="deinit" />
<ref role="1Pybhc" to="9kr0:7eGEHDlcEJ0" resolve="ChrPlanningSession" />
</node>
</node>
</node>
</node>
@ -5925,18 +5913,18 @@
<node concept="312cEg" id="1pPth$lE8Xs" role="jymVt">
<property role="34CwA1" value="false" />
<property role="eg7rD" value="false" />
<property role="TrG5h" value="ruleHandlers" />
<property role="TrG5h" value="planningSessions" />
<property role="3TUv4t" value="false" />
<node concept="3Tmbuc" id="1pPth$lE7PF" role="1B3o_S" />
<node concept="_YKpA" id="1pPth$lE8zt" role="1tU5fm">
<node concept="3uibUv" id="1pPth$lE8WH" role="_ZDj9">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
<node concept="3uibUv" id="78CwJJcTw4D" role="_ZDj9">
<ref role="3uigEE" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
</node>
<node concept="2ShNRf" id="1pPth$lGhrs" role="33vP2m">
<node concept="Tc6Ow" id="1pPth$lGhro" role="2ShVmc">
<node concept="3uibUv" id="1pPth$lGhrp" role="HW$YZ">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
<node concept="3uibUv" id="78CwJJcTx9$" role="HW$YZ">
<ref role="3uigEE" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
</node>
</node>
@ -5996,6 +5984,9 @@
<node concept="2ShNRf" id="1pPth$l_ZgF" role="2Oq$k0">
<node concept="1pGfFk" id="1pPth$l_ZgG" role="2ShVmc">
<ref role="37wK5l" to="9kr0:ZqZbw4Qjv7" resolve="ChrHandlerProducer" />
<node concept="37vLTw" id="78CwJJcWBz4" role="37wK5m">
<ref role="3cqZAo" node="1pPth$lEdgG" resolve="session" />
</node>
</node>
</node>
<node concept="liA8E" id="1pPth$l_ZgH" role="2OqNvi">
@ -6008,17 +5999,14 @@
<ref role="37wK5l" node="1pPth$lA589" resolve="rulesModel" />
</node>
</node>
<node concept="37vLTw" id="1pPth$lEe6e" role="37wK5m">
<ref role="3cqZAo" node="1pPth$lEdgG" resolve="rh" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="1pPth$lEdgG" role="1Duv9x">
<property role="TrG5h" value="rh" />
<node concept="3uibUv" id="1pPth$lEdgK" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
<property role="TrG5h" value="session" />
<node concept="3uibUv" id="78CwJJcTAYl" role="1tU5fm">
<ref role="3uigEE" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
</node>
<node concept="2OqwBi" id="1pPth$lEdgL" role="1DdaDG">
@ -6026,7 +6014,7 @@
<ref role="3cqZAo" node="1pPth$lEaxh" resolve="prev" />
</node>
<node concept="2OwXpG" id="1pPth$lEdgN" role="2OqNvi">
<ref role="2Oxat5" node="1pPth$lE8Xs" resolve="ruleHandlers" />
<ref role="2Oxat5" node="1pPth$lE8Xs" resolve="planningSessions" />
</node>
</node>
</node>

View File

@ -2205,6 +2205,29 @@
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="78CwJJcOBHJ" role="jymVt" />
<node concept="3clFb_" id="78CwJJcOBVp" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="argumentTypes" />
<node concept="3uibUv" id="78CwJJcOBVq" role="3clF45">
<ref role="3uigEE" to="33ny:~List" resolve="List" />
<node concept="3uibUv" id="78CwJJcOBVr" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="78CwJJcOBVs" role="11_B2D" />
</node>
</node>
<node concept="3Tm1VV" id="78CwJJcOBVt" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJcOBVT" role="3clF47">
<node concept="3clFbF" id="78CwJJcOBVW" role="3cqZAp">
<node concept="3nyPlj" id="78CwJJcOBVV" role="3clFbG">
<ref role="37wK5l" to="qrld:78CwJJcOxDH" resolve="argumentTypes" />
</node>
</node>
</node>
<node concept="2AHcQZ" id="78CwJJcOBVU" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="5jPBdKP3VT" role="jymVt" />
<node concept="3clFb_" id="5jPBdKP42a" role="jymVt">
<property role="1EzhhJ" value="false" />

View File

@ -9,6 +9,7 @@
<dependencies>
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
<dependency reexport="false">6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)</dependency>
<dependency reexport="false">7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.logic.atom)</dependency>
</dependencies>
<languageVersions>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" fqName="jetbrains.mps.baseLanguage" version="4" />
@ -22,6 +23,7 @@
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.logic.atom)" version="0" />
<module reference="bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)" version="0" />
</dependencyVersions>
</solution>

View File

@ -175,6 +175,7 @@
<child id="1163668922816" name="ifTrue" index="3K4E3e" />
<child id="1163668934364" name="ifFalse" index="3K4GZi" />
</concept>
<concept id="1208890769693" name="jetbrains.mps.baseLanguage.structure.ArrayLengthOperation" flags="nn" index="1Rwk04" />
<concept id="6329021646629104957" name="jetbrains.mps.baseLanguage.structure.TextCommentPart" flags="nn" index="3SKdUq">
<property id="6329021646629104958" name="text" index="3SKdUp" />
</concept>
@ -1485,6 +1486,20 @@
<node concept="3clFbS" id="5uFPQ7B_aTG" role="3clF47" />
</node>
<node concept="2tJIrI" id="5uFPQ7B_aZ9" role="jymVt" />
<node concept="3clFb_" id="78CwJJcOwWR" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="argumentTypes" />
<node concept="3uibUv" id="78CwJJcOxpB" role="3clF45">
<ref role="3uigEE" to="33ny:~List" resolve="List" />
<node concept="3uibUv" id="78CwJJcOxzF" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="78CwJJcOx$p" role="11_B2D" />
</node>
</node>
<node concept="3Tm1VV" id="78CwJJcOwWU" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJcOwWV" role="3clF47" />
</node>
<node concept="2tJIrI" id="78CwJJcOwxN" role="jymVt" />
<node concept="3Tm1VV" id="6Kcfpq7BfEo" role="1B3o_S" />
<node concept="3uibUv" id="5uFPQ7B$Pog" role="3HQHJm">
<ref role="3uigEE" node="5uFPQ7B$Pn9" resolve="AndItem" />
@ -2480,6 +2495,84 @@
</node>
</node>
</node>
<node concept="2tJIrI" id="78CwJJcOxO4" role="jymVt" />
<node concept="3clFb_" id="78CwJJcOxDH" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="argumentTypes" />
<node concept="3uibUv" id="78CwJJcOxDI" role="3clF45">
<ref role="3uigEE" to="33ny:~List" resolve="List" />
<node concept="3uibUv" id="78CwJJcOxDJ" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="78CwJJcOxDK" role="11_B2D" />
</node>
</node>
<node concept="3Tm1VV" id="78CwJJcOxDL" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJcOxDN" role="3clF47">
<node concept="3cpWs8" id="78CwJJcO$LY" role="3cqZAp">
<node concept="3cpWsn" id="78CwJJcO$LZ" role="3cpWs9">
<property role="TrG5h" value="types" />
<node concept="3uibUv" id="78CwJJcO$LM" role="1tU5fm">
<ref role="3uigEE" to="33ny:~ArrayList" resolve="ArrayList" />
<node concept="3uibUv" id="78CwJJcO$LS" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="78CwJJcO$LT" role="11_B2D" />
</node>
</node>
<node concept="2ShNRf" id="78CwJJcO$M0" role="33vP2m">
<node concept="1pGfFk" id="78CwJJcO$M1" role="2ShVmc">
<ref role="37wK5l" to="33ny:~ArrayList.&lt;init&gt;(int)" resolve="ArrayList" />
<node concept="2OqwBi" id="78CwJJcO$M2" role="37wK5m">
<node concept="37vLTw" id="78CwJJcO$M3" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BZuef" resolve="arguments" />
</node>
<node concept="1Rwk04" id="78CwJJcO$M4" role="2OqNvi" />
</node>
<node concept="3uibUv" id="78CwJJcO$M5" role="1pMfVU">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="78CwJJcO$M6" role="11_B2D" />
</node>
</node>
</node>
</node>
</node>
<node concept="1DcWWT" id="78CwJJcO_52" role="3cqZAp">
<node concept="3clFbS" id="78CwJJcO_54" role="2LFqv$">
<node concept="3clFbF" id="78CwJJcO_ku" role="3cqZAp">
<node concept="2OqwBi" id="78CwJJcO_ok" role="3clFbG">
<node concept="37vLTw" id="78CwJJcO_ks" role="2Oq$k0">
<ref role="3cqZAo" node="78CwJJcO$LZ" resolve="types" />
</node>
<node concept="liA8E" id="78CwJJcO_AW" role="2OqNvi">
<ref role="37wK5l" to="33ny:~ArrayList.add(java.lang.Object):boolean" resolve="add" />
<node concept="2OqwBi" id="78CwJJcO_HO" role="37wK5m">
<node concept="37vLTw" id="78CwJJcO_G3" role="2Oq$k0">
<ref role="3cqZAo" node="78CwJJcO_55" resolve="arg" />
</node>
<node concept="liA8E" id="78CwJJcO_ND" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.getClass():java.lang.Class" resolve="getClass" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="78CwJJcO_55" role="1Duv9x">
<property role="TrG5h" value="arg" />
<node concept="3uibUv" id="78CwJJcO_9N" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTw" id="78CwJJcO_hl" role="1DdaDG">
<ref role="3cqZAo" node="5uFPQ7BZuef" resolve="arguments" />
</node>
</node>
<node concept="3clFbF" id="78CwJJcOAQH" role="3cqZAp">
<node concept="37vLTw" id="78CwJJcOAQF" role="3clFbG">
<ref role="3cqZAo" node="78CwJJcO$LZ" resolve="types" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="5uFPQ7BZvRq" role="jymVt" />
<node concept="3Tm1VV" id="5uFPQ7BZsAY" role="1B3o_S" />
<node concept="3uibUv" id="5uFPQ7BZsBQ" role="EKbjA">

View File

@ -55,6 +55,7 @@
<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="1164879685961" name="throwsItem" index="Sfmx6" />
<child id="1068580123133" name="returnType" index="3clF45" />
<child id="1068580123134" name="parameter" index="3clF46" />
<child id="1068580123135" name="body" index="3clF47" />
@ -83,6 +84,10 @@
<property id="521412098689998745" name="nonStatic" index="2bfB8j" />
<child id="5375687026011219971" name="member" index="jymVt" unordered="true" />
</concept>
<concept id="1171903607971" name="jetbrains.mps.baseLanguage.structure.WildCardType" flags="in" index="3qTvmN" />
<concept id="1171903916106" name="jetbrains.mps.baseLanguage.structure.UpperBoundType" flags="in" index="3qUE_q">
<child id="1171903916107" name="bound" index="3qUE_r" />
</concept>
<concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
<reference id="1107535924139" name="classifier" index="3uigEE" />
<child id="1109201940907" name="parameter" index="11_B2D" />
@ -123,36 +128,148 @@
</registry>
<node concept="312cEu" id="5uFPQ7BvNzE">
<property role="TrG5h" value="PlanningSession" />
<property role="1sVAO0" value="true" />
<node concept="2tJIrI" id="5uFPQ7BvN_2" role="jymVt" />
<node concept="3clFb_" id="5uFPQ7BvQKh" role="jymVt">
<property role="TrG5h" value="createInstance" />
<node concept="3cqZAl" id="5uFPQ7BvQKj" role="3clF45" />
<node concept="2YIFZL" id="78CwJJcPVHP" role="jymVt">
<property role="TrG5h" value="newSession" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="37vLTG" id="78CwJJcTF4u" role="3clF46">
<property role="TrG5h" value="name" />
<node concept="17QB3L" id="78CwJJcTF59" role="1tU5fm" />
</node>
<node concept="3clFbS" id="5uFPQ7BvQKl" role="3clF47">
<node concept="3clFbJ" id="78CwJJd1N85" role="3cqZAp">
<node concept="3clFbS" id="78CwJJd1N87" role="3clFbx">
<node concept="YS8fn" id="78CwJJcPTDI" role="3cqZAp">
<node concept="2ShNRf" id="78CwJJcPTEe" role="YScLw">
<node concept="1pGfFk" id="78CwJJcPTNY" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalStateException.&lt;init&gt;(java.lang.String)" resolve="IllegalStateException" />
<node concept="Xl_RD" id="78CwJJcPTOu" role="37wK5m">
<property role="Xl_RC" value="factory not set" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="78CwJJd1Ncj" role="3clFbw">
<node concept="10Nm6u" id="78CwJJd1NcO" role="3uHU7w" />
<node concept="37vLTw" id="78CwJJd1N8N" role="3uHU7B">
<ref role="3cqZAo" node="78CwJJd1Mj3" resolve="ourFactory" />
</node>
</node>
</node>
<node concept="3clFbF" id="78CwJJd1Nx_" role="3cqZAp">
<node concept="2OqwBi" id="78CwJJd1Nyk" role="3clFbG">
<node concept="37vLTw" id="78CwJJd1Nxz" role="2Oq$k0">
<ref role="3cqZAo" node="78CwJJd1Mj3" resolve="ourFactory" />
</node>
<node concept="liA8E" id="78CwJJd1Nzv" role="2OqNvi">
<ref role="37wK5l" node="78CwJJd1Ni4" resolve="create" />
<node concept="37vLTw" id="78CwJJd24bb" role="37wK5m">
<ref role="3cqZAo" node="78CwJJcTF4u" resolve="name" />
</node>
</node>
</node>
</node>
</node>
<node concept="3uibUv" id="78CwJJcPTCV" role="3clF45">
<ref role="3uigEE" node="5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
<node concept="3Tm1VV" id="5uFPQ7BvQKk" role="1B3o_S" />
<node concept="3clFbS" id="5uFPQ7BvQKl" role="3clF47" />
</node>
<node concept="2tJIrI" id="5uFPQ7BvQJT" role="jymVt" />
<node concept="3clFb_" id="78CwJJcTOB4" role="jymVt">
<property role="TrG5h" value="name" />
<property role="1EzhhJ" value="true" />
<node concept="17QB3L" id="78CwJJcTPfl" role="3clF45" />
<node concept="3Tm1VV" id="78CwJJcTOB7" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJcTOB8" role="3clF47" />
</node>
<node concept="2tJIrI" id="78CwJJcTNZo" role="jymVt" />
<node concept="3clFb_" id="78CwJJcOw2K" role="jymVt">
<property role="TrG5h" value="constraintSymbols" />
<property role="1EzhhJ" value="true" />
<node concept="3uibUv" id="78CwJJcOw3v" role="3clF45">
<ref role="3uigEE" to="wyt6:~Iterable" resolve="Iterable" />
<node concept="3uibUv" id="78CwJJcOw3H" role="11_B2D">
<ref role="3uigEE" to="qrld:54i3FxcZHHF" resolve="ConstraintSymbol" />
</node>
</node>
<node concept="3Tm1VV" id="78CwJJcOw2N" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJcOw2O" role="3clF47" />
</node>
<node concept="2tJIrI" id="78CwJJcOw4k" role="jymVt" />
<node concept="3clFb_" id="5uFPQ7BvNRv" role="jymVt">
<property role="TrG5h" value="getConstraint" />
<property role="TrG5h" value="constraintArgumentTypes" />
<property role="1EzhhJ" value="true" />
<node concept="37vLTG" id="5uFPQ7BvTv5" role="3clF46">
<property role="TrG5h" value="symbol" />
<property role="TrG5h" value="constraintSymbol" />
<node concept="3uibUv" id="5uFPQ7BvTvh" role="1tU5fm">
<ref role="3uigEE" to="qrld:54i3FxcZHHF" resolve="ConstraintSymbol" />
</node>
</node>
<node concept="3uibUv" id="5uFPQ7Bw1j4" role="3clF45">
<ref role="3uigEE" to="qrld:6Kcfpq7BfEn" resolve="Constraint" />
</node>
<node concept="3Tm1VV" id="5uFPQ7BvNRy" role="1B3o_S" />
<node concept="3clFbS" id="5uFPQ7BvNRz" role="3clF47">
<node concept="3clFbF" id="5uFPQ7Bw1jp" role="3cqZAp">
<node concept="10Nm6u" id="5uFPQ7Bw1jo" role="3clFbG" />
<node concept="3uibUv" id="78CwJJcXgYY" role="3clF45">
<ref role="3uigEE" to="33ny:~List" resolve="List" />
<node concept="3uibUv" id="78CwJJcXh4G" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="78CwJJcXha0" role="11_B2D" />
</node>
</node>
<node concept="3Tm1VV" id="5uFPQ7BvNRy" role="1B3o_S" />
<node concept="3clFbS" id="5uFPQ7BvNRz" role="3clF47" />
</node>
<node concept="2tJIrI" id="78CwJJcOL7R" role="jymVt" />
<node concept="3clFb_" id="78CwJJcOKJw" role="jymVt">
<property role="TrG5h" value="predicateSymbols" />
<property role="1EzhhJ" value="true" />
<node concept="3uibUv" id="78CwJJcOL6F" role="3clF45">
<ref role="3uigEE" to="wyt6:~Iterable" resolve="Iterable" />
<node concept="3uibUv" id="78CwJJcOL6L" role="11_B2D">
<ref role="3uigEE" to="qrld:5uFPQ7B$$3f" resolve="PredicateSymbol" />
</node>
</node>
<node concept="3Tm1VV" id="78CwJJcOKJz" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJcOKJ$" role="3clF47" />
</node>
<node concept="2tJIrI" id="5uFPQ7BvNS6" role="jymVt" />
<node concept="3clFb_" id="78CwJJcXtfq" role="jymVt">
<property role="TrG5h" value="solverClass" />
<property role="1EzhhJ" value="true" />
<node concept="37vLTG" id="78CwJJcXtfr" role="3clF46">
<property role="TrG5h" value="predicateSymbol" />
<node concept="3uibUv" id="78CwJJcXtfs" role="1tU5fm">
<ref role="3uigEE" to="qrld:5uFPQ7B$$3f" resolve="PredicateSymbol" />
</node>
</node>
<node concept="3uibUv" id="78CwJJcXuvt" role="3clF45">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qUE_q" id="78CwJJcXux6" role="11_B2D">
<node concept="3uibUv" id="78CwJJcXuxe" role="3qUE_r">
<ref role="3uigEE" to="qrld:6Kcfpq7AYBh" resolve="Queryable" />
</node>
</node>
</node>
<node concept="3Tm1VV" id="78CwJJcXtfu" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJcXtfv" role="3clF47" />
</node>
<node concept="2tJIrI" id="5uFPQ7BvNSh" role="jymVt" />
<node concept="3clFb_" id="78CwJJcTsEO" role="jymVt">
<property role="TrG5h" value="rules" />
<property role="1EzhhJ" value="true" />
<node concept="3uibUv" id="78CwJJcTtiP" role="3clF45">
<ref role="3uigEE" to="wyt6:~Iterable" resolve="Iterable" />
<node concept="3uibUv" id="78CwJJcTtiV" role="11_B2D">
<ref role="3uigEE" to="i8dg:7eGEHDlc$9y" resolve="Rule" />
</node>
</node>
<node concept="3Tm1VV" id="78CwJJcTsER" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJcTsES" role="3clF47" />
</node>
<node concept="2tJIrI" id="78CwJJcXHyD" role="jymVt" />
<node concept="3clFb_" id="5uFPQ7BvNSW" role="jymVt">
<property role="TrG5h" value="addRule" />
<property role="1EzhhJ" value="true" />
<node concept="37vLTG" id="5uFPQ7BvTyj" role="3clF46">
<property role="TrG5h" value="rule" />
<node concept="3uibUv" id="5uFPQ7BvUxP" role="1tU5fm">
@ -162,10 +279,127 @@
<node concept="3cqZAl" id="5uFPQ7BvNSY" role="3clF45" />
<node concept="3Tm1VV" id="5uFPQ7BvNSZ" role="1B3o_S" />
<node concept="3clFbS" id="5uFPQ7BvNT0" role="3clF47" />
<node concept="3uibUv" id="78CwJJcTrpb" role="Sfmx6">
<ref role="3uigEE" to="i8dg:7Oc59RS$wKP" resolve="InvalidRuleException" />
</node>
</node>
<node concept="2tJIrI" id="78CwJJcOot9" role="jymVt" />
<node concept="2YIFZL" id="78CwJJd1Sv0" role="jymVt">
<property role="TrG5h" value="setFactory" />
<node concept="37vLTG" id="78CwJJd1TkU" role="3clF46">
<property role="TrG5h" value="factory" />
<node concept="3uibUv" id="78CwJJd1Tp_" role="1tU5fm">
<ref role="3uigEE" node="78CwJJcOou6" resolve="PlanningSession.Factory" />
</node>
</node>
<node concept="3cqZAl" id="78CwJJd1Sv2" role="3clF45" />
<node concept="3Tmbuc" id="78CwJJd1T72" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJd1Sv4" role="3clF47">
<node concept="3clFbJ" id="78CwJJd1Tuw" role="3cqZAp">
<node concept="3clFbS" id="78CwJJd1Tux" role="3clFbx">
<node concept="YS8fn" id="78CwJJd1Tuy" role="3cqZAp">
<node concept="2ShNRf" id="78CwJJd1Tuz" role="YScLw">
<node concept="1pGfFk" id="78CwJJd1Tu$" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalStateException.&lt;init&gt;(java.lang.String)" resolve="IllegalStateException" />
<node concept="Xl_RD" id="78CwJJd1Tu_" role="37wK5m">
<property role="Xl_RC" value="factory already set" />
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="78CwJJd1T$H" role="3clFbw">
<node concept="37vLTw" id="78CwJJd1TuF" role="3uHU7B">
<ref role="3cqZAo" node="78CwJJd1Mj3" resolve="ourFactory" />
</node>
<node concept="10Nm6u" id="78CwJJd1TuB" role="3uHU7w" />
</node>
</node>
<node concept="3clFbF" id="78CwJJd1TD5" role="3cqZAp">
<node concept="37vLTI" id="78CwJJd1TGM" role="3clFbG">
<node concept="37vLTw" id="78CwJJd1THw" role="37vLTx">
<ref role="3cqZAo" node="78CwJJd1TkU" resolve="factory" />
</node>
<node concept="37vLTw" id="78CwJJd1TD3" role="37vLTJ">
<ref role="3cqZAo" node="78CwJJd1Mj3" resolve="ourFactory" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="78CwJJd1Uo9" role="jymVt" />
<node concept="2YIFZL" id="78CwJJd1THT" role="jymVt">
<property role="TrG5h" value="clearFactory" />
<node concept="37vLTG" id="78CwJJd1THU" role="3clF46">
<property role="TrG5h" value="factory" />
<node concept="3uibUv" id="78CwJJd1THV" role="1tU5fm">
<ref role="3uigEE" node="78CwJJcOou6" resolve="PlanningSession.Factory" />
</node>
</node>
<node concept="3cqZAl" id="78CwJJd1THW" role="3clF45" />
<node concept="3Tmbuc" id="78CwJJd1THX" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJd1THY" role="3clF47">
<node concept="3clFbJ" id="78CwJJd1THZ" role="3cqZAp">
<node concept="3clFbS" id="78CwJJd1TI0" role="3clFbx">
<node concept="YS8fn" id="78CwJJd1TI1" role="3cqZAp">
<node concept="2ShNRf" id="78CwJJd1TI2" role="YScLw">
<node concept="1pGfFk" id="78CwJJd1TI3" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalStateException.&lt;init&gt;(java.lang.String)" resolve="IllegalStateException" />
<node concept="Xl_RD" id="78CwJJd1TI4" role="37wK5m">
<property role="Xl_RC" value="illegal access" />
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="78CwJJd1TI5" role="3clFbw">
<node concept="37vLTw" id="78CwJJd1TI6" role="3uHU7B">
<ref role="3cqZAo" node="78CwJJd1Mj3" resolve="ourFactory" />
</node>
<node concept="37vLTw" id="78CwJJd1V5F" role="3uHU7w">
<ref role="3cqZAo" node="78CwJJd1THU" resolve="factory" />
</node>
</node>
</node>
<node concept="3clFbF" id="78CwJJd1TI8" role="3cqZAp">
<node concept="37vLTI" id="78CwJJd1TI9" role="3clFbG">
<node concept="10Nm6u" id="78CwJJd1V7l" role="37vLTx" />
<node concept="37vLTw" id="78CwJJd1TIb" role="37vLTJ">
<ref role="3cqZAo" node="78CwJJd1Mj3" resolve="ourFactory" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="78CwJJd1RRc" role="jymVt" />
<node concept="3HP615" id="78CwJJcOou6" role="jymVt">
<property role="2bfB8j" value="true" />
<property role="TrG5h" value="Factory" />
<node concept="2tJIrI" id="78CwJJcOouR" role="jymVt" />
<node concept="3clFb_" id="78CwJJd1Ni4" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="create" />
<node concept="37vLTG" id="78CwJJd246e" role="3clF46">
<property role="TrG5h" value="name" />
<node concept="17QB3L" id="78CwJJd248i" role="1tU5fm" />
</node>
<node concept="3uibUv" id="78CwJJd1Nnf" role="3clF45">
<ref role="3uigEE" node="5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
<node concept="3Tm1VV" id="78CwJJd1Ni7" role="1B3o_S" />
<node concept="3clFbS" id="78CwJJd1Ni8" role="3clF47" />
</node>
<node concept="2tJIrI" id="78CwJJcOouT" role="jymVt" />
<node concept="3Tmbuc" id="78CwJJd1RMg" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="78CwJJd1PT_" role="jymVt" />
<node concept="Wx3nA" id="78CwJJd1Mj3" role="jymVt">
<property role="TrG5h" value="ourFactory" />
<node concept="3Tm6S6" id="78CwJJd1Mj5" role="1B3o_S" />
<node concept="3uibUv" id="78CwJJd1MXj" role="1tU5fm">
<ref role="3uigEE" node="78CwJJcOou6" resolve="PlanningSession.Factory" />
</node>
</node>
<node concept="2tJIrI" id="5uFPQ7BvNQS" role="jymVt" />
<node concept="2tJIrI" id="5uFPQ7BvNTq" role="jymVt" />
<node concept="2tJIrI" id="5uFPQ7BvNTC" role="jymVt" />
<node concept="3Tm1VV" id="5uFPQ7BvNzF" role="1B3o_S" />
</node>
<node concept="312cEu" id="5uFPQ7BvN_d">

View File

@ -10,6 +10,9 @@
<import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" />
<import index="3o3z" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:com.google.common.collect(MPS.Core/)" />
<import index="qrld" ref="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.constraint)" />
<import index="45ys" ref="r:7365f7fe-12e6-4229-8901-f6dc6d5df03f(jetbrains.mps.logic.reactor.logical)" />
<import index="ie8e" ref="r:ab2605ab-b4bc-4e80-a8ca-19a4a8465c01(jetbrains.mps.logic.atom)" />
<import index="rchb" ref="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
@ -73,20 +76,8 @@
<concept id="1164991038168" name="jetbrains.mps.baseLanguage.structure.ThrowStatement" flags="nn" index="YS8fn">
<child id="1164991057263" name="throwable" index="YScLw" />
</concept>
<concept id="1081256982272" name="jetbrains.mps.baseLanguage.structure.InstanceOfExpression" flags="nn" index="2ZW3vV">
<child id="1081256993305" name="classType" index="2ZW6by" />
<child id="1081256993304" name="leftExpression" index="2ZW6bz" />
</concept>
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
<concept id="1070534760951" name="jetbrains.mps.baseLanguage.structure.ArrayType" flags="in" index="10Q1$e">
<child id="1070534760952" name="componentType" index="10Q1$1" />
</concept>
<concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
<child id="1070534934091" name="type" index="10QFUM" />
<child id="1070534934092" name="expression" index="10QFUP" />
</concept>
<concept id="1068390468200" name="jetbrains.mps.baseLanguage.structure.FieldDeclaration" flags="ig" index="312cEg" />
<concept id="1068390468198" name="jetbrains.mps.baseLanguage.structure.ClassConcept" flags="ig" index="312cEu">
<property id="1075300953594" name="abstractClass" index="1sVAO0" />
@ -115,14 +106,11 @@
<concept id="1068580123165" name="jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" flags="ig" index="3clFb_">
<property id="1178608670077" name="isAbstract" index="1EzhhJ" />
</concept>
<concept id="1068580123152" name="jetbrains.mps.baseLanguage.structure.EqualsExpression" flags="nn" index="3clFbC" />
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
<child id="1068580123156" name="expression" index="3clFbG" />
</concept>
<concept id="1068580123157" name="jetbrains.mps.baseLanguage.structure.Statement" flags="nn" index="3clFbH" />
<concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
<property id="4467513934994662257" name="forceMultiLine" index="TyiWK" />
<property id="4467513934994662256" name="forceOneLine" index="TyiWL" />
<child id="1082485599094" name="ifFalseStatement" index="9aQIa" />
<child id="1068580123160" name="condition" index="3clFbw" />
<child id="1068580123161" name="ifTrue" index="3clFbx" />
@ -136,9 +124,6 @@
<property id="1068580320021" name="value" index="3cmrfH" />
</concept>
<concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
<concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
<child id="1068581517676" name="expression" index="3cqZAk" />
</concept>
<concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
</concept>
@ -166,10 +151,6 @@
<property id="521412098689998745" name="nonStatic" index="2bfB8j" />
<child id="5375687026011219971" name="member" index="jymVt" unordered="true" />
</concept>
<concept id="1171903607971" name="jetbrains.mps.baseLanguage.structure.WildCardType" flags="in" index="3qTvmN" />
<concept id="1171903916106" name="jetbrains.mps.baseLanguage.structure.UpperBoundType" flags="in" index="3qUE_q">
<child id="1171903916107" name="bound" index="3qUE_r" />
</concept>
<concept id="7812454656619025416" name="jetbrains.mps.baseLanguage.structure.MethodDeclaration" flags="ng" index="1rXfSm">
<property id="8355037393041754995" name="isNative" index="2aFKle" />
</concept>
@ -183,20 +164,9 @@
<child id="1081773367580" name="leftExpression" index="3uHU7B" />
</concept>
<concept id="1214918800624" name="jetbrains.mps.baseLanguage.structure.PostfixIncrementExpression" flags="nn" index="3uNrnE" />
<concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
<concept id="1184950988562" name="jetbrains.mps.baseLanguage.structure.ArrayCreator" flags="nn" index="3$_iS1">
<child id="1184951007469" name="componentType" index="3$_nBY" />
<child id="1184952969026" name="dimensionExpression" index="3$GQph" />
</concept>
<concept id="1184952934362" name="jetbrains.mps.baseLanguage.structure.DimensionExpression" flags="nn" index="3$GHV9">
<child id="1184953288404" name="expression" index="3$I4v7" />
</concept>
<concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
<child id="1178549979242" name="visibility" index="1B3o_S" />
</concept>
<concept id="1144226303539" name="jetbrains.mps.baseLanguage.structure.ForeachStatement" flags="nn" index="1DcWWT">
<child id="1144226360166" name="iterable" index="1DdaDG" />
</concept>
<concept id="1144230876926" name="jetbrains.mps.baseLanguage.structure.AbstractForStatement" flags="nn" index="1DupvO">
<child id="1144230900587" name="variable" index="1Duv9x" />
</concept>
@ -1451,787 +1421,6 @@
</node>
<node concept="3Tm1VV" id="7eGEHDlc$f6" role="1B3o_S" />
</node>
<node concept="312cEu" id="7eGEHDldgwf">
<property role="TrG5h" value="ConstraintRegistry" />
<property role="1sVAO0" value="false" />
<node concept="2tJIrI" id="2fk6$tOrcbX" role="jymVt" />
<node concept="3clFb_" id="7eGEHDldpbj" role="jymVt">
<property role="TrG5h" value="checkValidConstraint" />
<node concept="3cqZAl" id="7Oc59RSHNKF" role="3clF45" />
<node concept="3Tm1VV" id="7eGEHDldpbm" role="1B3o_S" />
<node concept="3clFbS" id="7eGEHDldpbn" role="3clF47">
<node concept="3clFbJ" id="5uFPQ7BEi6d" role="3cqZAp">
<node concept="3clFbS" id="5uFPQ7BEi6f" role="3clFbx">
<node concept="3cpWs8" id="5uFPQ7BEo4v" role="3cqZAp">
<node concept="3cpWsn" id="5uFPQ7BEo4w" role="3cpWs9">
<property role="TrG5h" value="cst" />
<node concept="3uibUv" id="5uFPQ7BEo4s" role="1tU5fm">
<ref role="3uigEE" to="qrld:6Kcfpq7BfEn" resolve="Constraint" />
</node>
<node concept="10QFUN" id="5uFPQ7BEo4x" role="33vP2m">
<node concept="37vLTw" id="5uFPQ7BEo4y" role="10QFUP">
<ref role="3cqZAo" node="7eGEHDldphF" resolve="item" />
</node>
<node concept="3uibUv" id="5uFPQ7BEo4z" role="10QFUM">
<ref role="3uigEE" to="qrld:6Kcfpq7BfEn" resolve="Constraint" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7eGEHDlg3RR" role="3cqZAp">
<node concept="3cpWsn" id="7eGEHDlg3RS" role="3cpWs9">
<property role="TrG5h" value="matches" />
<node concept="10P_77" id="7eGEHDlg3RE" role="1tU5fm" />
<node concept="3clFbC" id="7eGEHDlg3RT" role="33vP2m">
<node concept="2OqwBi" id="30XHGaOWf5H" role="3uHU7w">
<node concept="2OqwBi" id="7eGEHDlg3RU" role="2Oq$k0">
<node concept="37vLTw" id="5uFPQ7BEp2v" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEo4w" resolve="cst" />
</node>
<node concept="liA8E" id="30XHGaOWeZv" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_b06" resolve="arguments" />
</node>
</node>
<node concept="liA8E" id="30XHGaOWfgx" role="2OqNvi">
<ref role="37wK5l" to="33ny:~List.size():int" resolve="size" />
</node>
</node>
<node concept="2OqwBi" id="7eGEHDlg3RX" role="3uHU7B">
<node concept="2OqwBi" id="30XHGaP5pkH" role="2Oq$k0">
<node concept="37vLTw" id="5uFPQ7BEoPo" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEo4w" resolve="cst" />
</node>
<node concept="liA8E" id="30XHGaP5pQG" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_aTC" resolve="symbol" />
</node>
</node>
<node concept="liA8E" id="7eGEHDlg3RZ" role="2OqNvi">
<ref role="37wK5l" to="qrld:54i3FxcZMv$" resolve="arity" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="7eGEHDlg4M0" role="3cqZAp">
<property role="TyiWK" value="true" />
<property role="TyiWL" value="false" />
<node concept="3clFbS" id="7eGEHDlg4M3" role="3clFbx">
<node concept="YS8fn" id="7Oc59RSHOPS" role="3cqZAp">
<node concept="2ShNRf" id="7Oc59RSHPbM" role="YScLw">
<node concept="1pGfFk" id="7Oc59RSHPxc" role="2ShVmc">
<ref role="37wK5l" node="7Oc59RSHJEw" resolve="InvalidConstraintException" />
<node concept="3cpWs3" id="7Oc59RSHQew" role="37wK5m">
<node concept="2YIFZM" id="7Oc59RSHQex" role="3uHU7w">
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object):java.lang.String" resolve="valueOf" />
<node concept="2OqwBi" id="7Oc59RSHQey" role="37wK5m">
<node concept="37vLTw" id="5uFPQ7BEpeQ" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEo4w" resolve="cst" />
</node>
<node concept="liA8E" id="7Oc59RSHQe$" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_aTC" resolve="symbol" />
</node>
</node>
</node>
<node concept="Xl_RD" id="7Oc59RSHQe_" role="3uHU7B">
<property role="Xl_RC" value="arity mismatch for " />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3fqX7Q" id="7eGEHDlg51Y" role="3clFbw">
<node concept="37vLTw" id="7eGEHDlg57r" role="3fr31v">
<ref role="3cqZAo" node="7eGEHDlg3RS" resolve="matches" />
</node>
</node>
</node>
<node concept="3clFbH" id="1zN1RIln3l9" role="3cqZAp" />
<node concept="3clFbJ" id="7eGEHDleMeh" role="3cqZAp">
<node concept="3clFbS" id="7eGEHDleMei" role="3clFbx">
<node concept="3clFbJ" id="1zN1RIlmYBW" role="3cqZAp">
<node concept="3clFbS" id="1zN1RIlmYBY" role="3clFbx">
<node concept="YS8fn" id="1zN1RIln3iC" role="3cqZAp">
<node concept="2ShNRf" id="1zN1RIln3iD" role="YScLw">
<node concept="1pGfFk" id="1zN1RIln3iE" role="2ShVmc">
<ref role="37wK5l" node="7Oc59RSHJEw" resolve="InvalidConstraintException" />
<node concept="3cpWs3" id="1zN1RIln3iF" role="37wK5m">
<node concept="2YIFZM" id="1zN1RIln3iG" role="3uHU7w">
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object):java.lang.String" resolve="valueOf" />
<node concept="2OqwBi" id="1zN1RIln3iH" role="37wK5m">
<node concept="37vLTw" id="5uFPQ7BEsjZ" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEo4w" resolve="cst" />
</node>
<node concept="liA8E" id="1zN1RIln3iJ" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_aTC" resolve="symbol" />
</node>
</node>
</node>
<node concept="Xl_RD" id="1zN1RIln3iK" role="3uHU7B">
<property role="Xl_RC" value="argument type mismatch for " />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3fqX7Q" id="1zN1RIlmYCN" role="3clFbw">
<node concept="2YIFZM" id="1zN1RIln273" role="3fr31v">
<ref role="37wK5l" to="33ny:~Arrays.equals(java.lang.Object[],java.lang.Object[]):boolean" resolve="equals" />
<ref role="1Pybhc" to="33ny:~Arrays" resolve="Arrays" />
<node concept="1rXfSq" id="1zN1RIln284" role="37wK5m">
<ref role="37wK5l" node="1zN1RIlmL7q" resolve="argType" />
<node concept="37vLTw" id="5uFPQ7BEpRK" role="37wK5m">
<ref role="3cqZAo" node="5uFPQ7BEo4w" resolve="cst" />
</node>
</node>
<node concept="2OqwBi" id="30XHGaP5H3s" role="37wK5m">
<node concept="37vLTw" id="30XHGaP5H3t" role="2Oq$k0">
<ref role="3cqZAo" node="7eGEHDley5W" resolve="userConstraintArgTypes" />
</node>
<node concept="liA8E" id="30XHGaP5H3u" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.get(java.lang.Object):java.lang.Object" resolve="get" />
<node concept="2OqwBi" id="30XHGaP5H3v" role="37wK5m">
<node concept="37vLTw" id="5uFPQ7BEs2s" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEo4w" resolve="cst" />
</node>
<node concept="liA8E" id="30XHGaP5H3x" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_aTC" resolve="symbol" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="7eGEHDleL6q" role="3clFbw">
<node concept="37vLTw" id="7eGEHDleIbQ" role="2Oq$k0">
<ref role="3cqZAo" node="7eGEHDley5W" resolve="userConstraintArgTypes" />
</node>
<node concept="liA8E" id="7eGEHDleLnR" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.containsKey(java.lang.Object):boolean" resolve="containsKey" />
<node concept="2OqwBi" id="7eGEHDleLtw" role="37wK5m">
<node concept="37vLTw" id="5uFPQ7BEppf" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEo4w" resolve="cst" />
</node>
<node concept="liA8E" id="7eGEHDleLzH" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_aTC" resolve="symbol" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5uFPQ7BEtME" role="3cqZAp" />
</node>
<node concept="2ZW3vV" id="5uFPQ7BEjM3" role="3clFbw">
<node concept="3uibUv" id="5uFPQ7BEk3l" role="2ZW6by">
<ref role="3uigEE" to="qrld:6Kcfpq7BfEn" resolve="Constraint" />
</node>
<node concept="37vLTw" id="5uFPQ7BEjxn" role="2ZW6bz">
<ref role="3cqZAo" node="7eGEHDldphF" resolve="item" />
</node>
</node>
<node concept="3eNFk2" id="5uFPQ7BEsMn" role="3eNLev">
<node concept="2ZW3vV" id="5uFPQ7BEtf6" role="3eO9$A">
<node concept="3uibUv" id="5uFPQ7BEtlm" role="2ZW6by">
<ref role="3uigEE" to="qrld:6Kcfpq7Bj7q" resolve="Predicate" />
</node>
<node concept="37vLTw" id="5uFPQ7BEt9u" role="2ZW6bz">
<ref role="3cqZAo" node="7eGEHDldphF" resolve="item" />
</node>
</node>
<node concept="3clFbS" id="5uFPQ7BEsMp" role="3eOfB_">
<node concept="3cpWs8" id="5uFPQ7BEu6y" role="3cqZAp">
<node concept="3cpWsn" id="5uFPQ7BEu6z" role="3cpWs9">
<property role="TrG5h" value="pred" />
<node concept="3uibUv" id="5uFPQ7BEu6w" role="1tU5fm">
<ref role="3uigEE" to="qrld:6Kcfpq7Bj7q" resolve="Predicate" />
</node>
<node concept="10QFUN" id="5uFPQ7BEu6$" role="33vP2m">
<node concept="37vLTw" id="5uFPQ7BEu6_" role="10QFUP">
<ref role="3cqZAo" node="7eGEHDldphF" resolve="item" />
</node>
<node concept="3uibUv" id="5uFPQ7BEu6A" role="10QFUM">
<ref role="3uigEE" to="qrld:6Kcfpq7Bj7q" resolve="Predicate" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2pvEdquuzfg" role="3cqZAp">
<property role="TyiWK" value="true" />
<property role="TyiWL" value="false" />
<node concept="3clFbS" id="2pvEdquuzfh" role="3clFbx">
<node concept="YS8fn" id="2pvEdquuFKC" role="3cqZAp">
<node concept="2ShNRf" id="2pvEdquuFKD" role="YScLw">
<node concept="1pGfFk" id="2pvEdquuFKE" role="2ShVmc">
<ref role="37wK5l" node="7Oc59RSHJEw" resolve="InvalidConstraintException" />
<node concept="3cpWs3" id="2pvEdquuFKF" role="37wK5m">
<node concept="2YIFZM" id="2pvEdquuFKG" role="3uHU7w">
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object):java.lang.String" resolve="valueOf" />
<node concept="2OqwBi" id="2pvEdquuFKH" role="37wK5m">
<node concept="37vLTw" id="5uFPQ7BEvpY" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEu6z" resolve="pred" />
</node>
<node concept="liA8E" id="2pvEdquuFKJ" role="2OqNvi">
<ref role="37wK5l" to="qrld:6Kcfpq7Bjgi" resolve="symbol" />
</node>
</node>
</node>
<node concept="Xl_RD" id="2pvEdquuFKK" role="3uHU7B">
<property role="Xl_RC" value="arity mismatch for " />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="2pvEdquuFm2" role="3clFbw">
<node concept="2OqwBi" id="30XHGaOWeKw" role="3uHU7B">
<node concept="2OqwBi" id="2pvEdquuFmc" role="2Oq$k0">
<node concept="37vLTw" id="5uFPQ7BEvh9" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEu6z" resolve="pred" />
</node>
<node concept="liA8E" id="30XHGaOWeEi" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_b06" resolve="arguments" />
</node>
</node>
<node concept="liA8E" id="30XHGaOWeVo" role="2OqNvi">
<ref role="37wK5l" to="33ny:~List.size():int" resolve="size" />
</node>
</node>
<node concept="2OqwBi" id="2pvEdquuFm4" role="3uHU7w">
<node concept="2OqwBi" id="2pvEdquuFm5" role="2Oq$k0">
<node concept="37vLTw" id="5uFPQ7BEvly" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BEu6z" resolve="pred" />
</node>
<node concept="liA8E" id="2pvEdquuFma" role="2OqNvi">
<ref role="37wK5l" to="qrld:6Kcfpq7Bjgi" resolve="symbol" />
</node>
</node>
<node concept="liA8E" id="2pvEdquuFmb" role="2OqNvi">
<ref role="37wK5l" to="qrld:54i3FxcZMv$" resolve="arity" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5uFPQ7BEhJz" role="3cqZAp" />
<node concept="1DcWWT" id="2KVRGowW$Kl" role="3cqZAp">
<node concept="3clFbS" id="2KVRGowW$Km" role="2LFqv$">
<node concept="3clFbJ" id="2KVRGowW_mo" role="3cqZAp">
<node concept="3clFbS" id="2KVRGowW_mp" role="3clFbx">
<node concept="YS8fn" id="2KVRGowW_uZ" role="3cqZAp">
<node concept="2ShNRf" id="2KVRGowW_w4" role="YScLw">
<node concept="1pGfFk" id="2KVRGowWD9N" role="2ShVmc">
<ref role="37wK5l" node="7Oc59RSHJEw" resolve="InvalidConstraintException" />
<node concept="3cpWs3" id="2KVRGowWD$u" role="37wK5m">
<node concept="2YIFZM" id="2KVRGowWDMj" role="3uHU7w">
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object):java.lang.String" resolve="valueOf" />
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<node concept="2OqwBi" id="2KVRGowWE4s" role="37wK5m">
<node concept="37vLTw" id="2KVRGowWDWb" role="2Oq$k0">
<ref role="3cqZAo" node="7eGEHDldphF" resolve="item" />
</node>
<node concept="liA8E" id="2KVRGowWEea" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7BE$9i" resolve="symbol" />
</node>
</node>
</node>
<node concept="Xl_RD" id="2KVRGowWDb8" role="3uHU7B">
<property role="Xl_RC" value="argument is null in " />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5uFPQ7BH4xL" role="3cqZAp" />
</node>
<node concept="3clFbC" id="2KVRGowW_pF" role="3clFbw">
<node concept="10Nm6u" id="2KVRGowW_qV" role="3uHU7w" />
<node concept="37vLTw" id="2KVRGowW_ol" role="3uHU7B">
<ref role="3cqZAo" node="2KVRGowW$Kp" resolve="arg" />
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="2KVRGowW$Kp" role="1Duv9x">
<property role="TrG5h" value="arg" />
<node concept="3uibUv" id="2KVRGowW$Kt" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="2OqwBi" id="2KVRGowW$Ku" role="1DdaDG">
<node concept="37vLTw" id="2KVRGowW$Kv" role="2Oq$k0">
<ref role="3cqZAo" node="7eGEHDldphF" resolve="item" />
</node>
<node concept="liA8E" id="2KVRGowW$Kw" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_b06" resolve="arguments" />
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="7eGEHDldphF" role="3clF46">
<property role="TrG5h" value="item" />
<node concept="3uibUv" id="5uFPQ7BEg4K" role="1tU5fm">
<ref role="3uigEE" to="qrld:5uFPQ7B$Pn9" resolve="AndItem" />
</node>
</node>
<node concept="3uibUv" id="7Oc59RSHN4l" role="Sfmx6">
<ref role="3uigEE" node="7Oc59RSHJnv" resolve="InvalidConstraintException" />
</node>
</node>
<node concept="2tJIrI" id="7eGEHDldnO1" role="jymVt" />
<node concept="3clFb_" id="ZqZbw4RIlL" role="jymVt">
<property role="TrG5h" value="constraintSymbols" />
<node concept="3uibUv" id="ZqZbw4RJ9K" role="3clF45">
<ref role="3uigEE" to="33ny:~Set" resolve="Set" />
<node concept="3uibUv" id="30XHGaP58Kh" role="11_B2D">
<ref role="3uigEE" to="qrld:54i3FxcZHHF" resolve="ConstraintSymbol" />
</node>
</node>
<node concept="3Tm1VV" id="ZqZbw4RIlO" role="1B3o_S" />
<node concept="3clFbS" id="ZqZbw4RIlP" role="3clF47">
<node concept="3clFbF" id="ZqZbw4RKWT" role="3cqZAp">
<node concept="2YIFZM" id="ZqZbw4RKXF" role="3clFbG">
<ref role="37wK5l" to="33ny:~Collections.unmodifiableSet(java.util.Set):java.util.Set" resolve="unmodifiableSet" />
<ref role="1Pybhc" to="33ny:~Collections" resolve="Collections" />
<node concept="2OqwBi" id="ZqZbw4RLsb" role="37wK5m">
<node concept="37vLTw" id="ZqZbw4RKZd" role="2Oq$k0">
<ref role="3cqZAo" node="7eGEHDley5W" resolve="userConstraintArgTypes" />
</node>
<node concept="liA8E" id="ZqZbw4RLHg" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.keySet():java.util.Set" resolve="keySet" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7ISVfSJx7i" role="jymVt" />
<node concept="3clFb_" id="7ISVfSJwqK" role="jymVt">
<property role="TrG5h" value="builtinSolvers" />
<node concept="3uibUv" id="7ISVfSJwqL" role="3clF45">
<ref role="3uigEE" to="33ny:~Set" resolve="Set" />
<node concept="3uibUv" id="7ISVfSJzEP" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qUE_q" id="7ISVfSJzGm" role="11_B2D">
<node concept="3uibUv" id="7ISVfSJzHu" role="3qUE_r">
<ref role="3uigEE" to="qrld:6Kcfpq7AYBh" resolve="Queryable" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="7ISVfSJwqN" role="1B3o_S" />
<node concept="3clFbS" id="7ISVfSJwqO" role="3clF47">
<node concept="3clFbF" id="7ISVfSJwqP" role="3cqZAp">
<node concept="2YIFZM" id="7ISVfSJwqQ" role="3clFbG">
<ref role="37wK5l" to="33ny:~Collections.unmodifiableSet(java.util.Set):java.util.Set" resolve="unmodifiableSet" />
<ref role="1Pybhc" to="33ny:~Collections" resolve="Collections" />
<node concept="37vLTw" id="7ISVfSJz$M" role="37wK5m">
<ref role="3cqZAo" node="7ISVfSJtsW" resolve="builtinSolvers" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2pvEdquvpGe" role="jymVt" />
<node concept="3clFb_" id="ZqZbw4RMM4" role="jymVt">
<property role="TrG5h" value="getUserConstraintArgTypes" />
<node concept="37vLTG" id="ZqZbw4ROEp" role="3clF46">
<property role="TrG5h" value="id" />
<node concept="3uibUv" id="ZqZbw4ROWo" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="10Q1$e" id="30XHGaP5_hR" role="3clF45">
<node concept="3uibUv" id="30XHGaP5$Ip" role="10Q1$1">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="30XHGaP5_f9" role="11_B2D" />
</node>
</node>
<node concept="3Tm1VV" id="ZqZbw4RMM7" role="1B3o_S" />
<node concept="3clFbS" id="ZqZbw4RMM8" role="3clF47">
<node concept="3clFbJ" id="ZqZbw4RQc6" role="3cqZAp">
<node concept="3clFbS" id="ZqZbw4RQc9" role="3clFbx">
<node concept="YS8fn" id="ZqZbw4RQVl" role="3cqZAp">
<node concept="2ShNRf" id="ZqZbw4RQVK" role="YScLw">
<node concept="1pGfFk" id="ZqZbw4S21X" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalArgumentException.&lt;init&gt;(java.lang.String)" resolve="IllegalArgumentException" />
<node concept="3cpWs3" id="ZqZbw4S2l9" role="37wK5m">
<node concept="37vLTw" id="ZqZbw4S2nj" role="3uHU7w">
<ref role="3cqZAo" node="ZqZbw4ROEp" resolve="id" />
</node>
<node concept="Xl_RD" id="ZqZbw4S23i" role="3uHU7B">
<property role="Xl_RC" value="no such ID: " />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3fqX7Q" id="ZqZbw4RQgy" role="3clFbw">
<node concept="2OqwBi" id="ZqZbw4RQxk" role="3fr31v">
<node concept="37vLTw" id="ZqZbw4RQk8" role="2Oq$k0">
<ref role="3cqZAo" node="7eGEHDley5W" resolve="userConstraintArgTypes" />
</node>
<node concept="liA8E" id="ZqZbw4RQMf" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.containsKey(java.lang.Object):boolean" resolve="containsKey" />
<node concept="37vLTw" id="ZqZbw4RQQF" role="37wK5m">
<ref role="3cqZAo" node="ZqZbw4ROEp" resolve="id" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="ZqZbw4ROXk" role="3cqZAp">
<node concept="2OqwBi" id="ZqZbw4RPJ6" role="3clFbG">
<node concept="37vLTw" id="ZqZbw4RPk8" role="2Oq$k0">
<ref role="3cqZAo" node="7eGEHDley5W" resolve="userConstraintArgTypes" />
</node>
<node concept="liA8E" id="ZqZbw4RPZD" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.get(java.lang.Object):java.lang.Object" resolve="get" />
<node concept="37vLTw" id="ZqZbw4RQ3N" role="37wK5m">
<ref role="3cqZAo" node="ZqZbw4ROEp" resolve="id" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2fk6$tOttiT" role="jymVt" />
<node concept="3Tm1VV" id="7eGEHDldgwg" role="1B3o_S" />
<node concept="3clFb_" id="7eGEHDlefwa" role="jymVt">
<property role="TrG5h" value="introduceConstraint" />
<node concept="3cqZAl" id="7Oc59RSHdhK" role="3clF45" />
<node concept="3clFbS" id="7eGEHDlefwc" role="3clF47">
<node concept="3clFbF" id="7Oc59RSHTjZ" role="3cqZAp">
<node concept="1rXfSq" id="7Oc59RSHTjX" role="3clFbG">
<ref role="37wK5l" node="7eGEHDldpbj" resolve="checkValidConstraint" />
<node concept="37vLTw" id="7Oc59RSHTE1" role="37wK5m">
<ref role="3cqZAo" node="7eGEHDleg3E" resolve="item" />
</node>
</node>
</node>
<node concept="3clFbJ" id="5uFPQ7BH0cX" role="3cqZAp">
<node concept="3clFbS" id="5uFPQ7BH0cZ" role="3clFbx">
<node concept="3cpWs8" id="5uFPQ7BH1yI" role="3cqZAp">
<node concept="3cpWsn" id="5uFPQ7BH1yJ" role="3cpWs9">
<property role="TrG5h" value="cst" />
<node concept="3uibUv" id="5uFPQ7BH1yG" role="1tU5fm">
<ref role="3uigEE" to="qrld:6Kcfpq7BfEn" resolve="Constraint" />
</node>
<node concept="10QFUN" id="5uFPQ7BH1yK" role="33vP2m">
<node concept="37vLTw" id="5uFPQ7BH1yL" role="10QFUP">
<ref role="3cqZAo" node="7eGEHDleg3E" resolve="item" />
</node>
<node concept="3uibUv" id="5uFPQ7BH1yM" role="10QFUM">
<ref role="3uigEE" to="qrld:6Kcfpq7BfEn" resolve="Constraint" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7eGEHDleQCQ" role="3cqZAp">
<node concept="2OqwBi" id="7eGEHDleQIf" role="3clFbG">
<node concept="37vLTw" id="7eGEHDleQCP" role="2Oq$k0">
<ref role="3cqZAo" node="7eGEHDley5W" resolve="userConstraintArgTypes" />
</node>
<node concept="liA8E" id="7eGEHDleQZ$" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.put(java.lang.Object,java.lang.Object):java.lang.Object" resolve="put" />
<node concept="2OqwBi" id="7eGEHDleR63" role="37wK5m">
<node concept="37vLTw" id="5uFPQ7BH1JL" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BH1yJ" resolve="cst" />
</node>
<node concept="liA8E" id="7eGEHDleRaS" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_aTC" resolve="symbol" />
</node>
</node>
<node concept="1rXfSq" id="1zN1RIlmYAF" role="37wK5m">
<ref role="37wK5l" node="1zN1RIlmL7q" resolve="argType" />
<node concept="37vLTw" id="5uFPQ7BH1QO" role="37wK5m">
<ref role="3cqZAo" node="5uFPQ7BH1yJ" resolve="cst" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5uFPQ7BH2dI" role="3cqZAp" />
</node>
<node concept="2ZW3vV" id="5uFPQ7BH0Nf" role="3clFbw">
<node concept="3uibUv" id="5uFPQ7BH0W3" role="2ZW6by">
<ref role="3uigEE" to="qrld:6Kcfpq7BfEn" resolve="Constraint" />
</node>
<node concept="37vLTw" id="5uFPQ7BH0oU" role="2ZW6bz">
<ref role="3cqZAo" node="7eGEHDleg3E" resolve="item" />
</node>
</node>
<node concept="3eNFk2" id="5uFPQ7BH23e" role="3eNLev">
<node concept="2ZW3vV" id="5uFPQ7BH2ms" role="3eO9$A">
<node concept="3uibUv" id="5uFPQ7BH2ni" role="2ZW6by">
<ref role="3uigEE" to="qrld:6Kcfpq7Bj7q" resolve="Predicate" />
</node>
<node concept="37vLTw" id="5uFPQ7BH2j_" role="2ZW6bz">
<ref role="3cqZAo" node="7eGEHDleg3E" resolve="item" />
</node>
</node>
<node concept="3clFbS" id="5uFPQ7BH23g" role="3eOfB_">
<node concept="3cpWs8" id="5uFPQ7BH2qS" role="3cqZAp">
<node concept="3cpWsn" id="5uFPQ7BH2qT" role="3cpWs9">
<property role="TrG5h" value="pred" />
<node concept="3uibUv" id="5uFPQ7BH2qQ" role="1tU5fm">
<ref role="3uigEE" to="qrld:6Kcfpq7Bj7q" resolve="Predicate" />
</node>
<node concept="10QFUN" id="5uFPQ7BH2qU" role="33vP2m">
<node concept="37vLTw" id="5uFPQ7BH2qV" role="10QFUP">
<ref role="3cqZAo" node="7eGEHDleg3E" resolve="item" />
</node>
<node concept="3uibUv" id="5uFPQ7BH2qW" role="10QFUM">
<ref role="3uigEE" to="qrld:6Kcfpq7Bj7q" resolve="Predicate" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7ISVfSJv16" role="3cqZAp">
<node concept="2OqwBi" id="7ISVfSJvhy" role="3clFbG">
<node concept="37vLTw" id="7ISVfSJv14" role="2Oq$k0">
<ref role="3cqZAo" node="7ISVfSJtsW" resolve="builtinSolvers" />
</node>
<node concept="liA8E" id="7ISVfSJvtA" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Set.add(java.lang.Object):boolean" resolve="add" />
<node concept="2OqwBi" id="7ISVfSJvB5" role="37wK5m">
<node concept="37vLTw" id="7ISVfSJvyy" role="2Oq$k0">
<ref role="3cqZAo" node="5uFPQ7BH2qT" resolve="pred" />
</node>
<node concept="liA8E" id="7ISVfSJw6g" role="2OqNvi">
<ref role="37wK5l" to="qrld:4xBopTzlOsG" resolve="solverClass" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5uFPQ7BH2PB" role="3cqZAp" />
</node>
</node>
<node concept="9aQIb" id="5uFPQ7BH2T$" role="9aQIa">
<node concept="3clFbS" id="5uFPQ7BH2T_" role="9aQI4">
<node concept="YS8fn" id="54i3FxcRWd9" role="3cqZAp">
<node concept="2ShNRf" id="54i3FxcRWee" role="YScLw">
<node concept="1pGfFk" id="54i3FxcRX6D" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalArgumentException.&lt;init&gt;(java.lang.String)" resolve="IllegalArgumentException" />
<node concept="3cpWs3" id="54i3FxcRXPF" role="37wK5m">
<node concept="Xl_RD" id="54i3FxcRXPT" role="3uHU7w">
<property role="Xl_RC" value="'" />
</node>
<node concept="3cpWs3" id="54i3FxcRYkz" role="3uHU7B">
<node concept="37vLTw" id="54i3FxcRYpR" role="3uHU7w">
<ref role="3cqZAo" node="7eGEHDleg3E" resolve="item" />
</node>
<node concept="Xl_RD" id="54i3FxcRXaq" role="3uHU7B">
<property role="Xl_RC" value="unknown item '" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="7eGEHDleg3E" role="3clF46">
<property role="TrG5h" value="item" />
<node concept="3uibUv" id="5uFPQ7BGZBH" role="1tU5fm">
<ref role="3uigEE" to="qrld:5uFPQ7B$Pn9" resolve="AndItem" />
</node>
</node>
<node concept="3uibUv" id="7Oc59RSHLFV" role="Sfmx6">
<ref role="3uigEE" node="7Oc59RSHJnv" resolve="InvalidConstraintException" />
</node>
<node concept="3Tm1VV" id="30XHGaPzU_I" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="1zN1RIlmLd2" role="jymVt" />
<node concept="3clFb_" id="1zN1RIlmL7q" role="jymVt">
<property role="TrG5h" value="argType" />
<node concept="3Tm6S6" id="1zN1RIlmL7r" role="1B3o_S" />
<node concept="10Q1$e" id="1zN1RIlmL7s" role="3clF45">
<node concept="3uibUv" id="1zN1RIlmL7t" role="10Q1$1">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="1zN1RIlmL7u" role="11_B2D" />
</node>
</node>
<node concept="37vLTG" id="1zN1RIlmL7g" role="3clF46">
<property role="TrG5h" value="cst" />
<node concept="3uibUv" id="5uFPQ7BEqj7" role="1tU5fm">
<ref role="3uigEE" to="qrld:6Kcfpq7BfEn" resolve="Constraint" />
</node>
</node>
<node concept="3clFbS" id="1zN1RIlmL6C" role="3clF47">
<node concept="3cpWs8" id="1zN1RIlmL6F" role="3cqZAp">
<node concept="3cpWsn" id="1zN1RIlmL6G" role="3cpWs9">
<property role="TrG5h" value="argType" />
<node concept="10Q1$e" id="1zN1RIlmL6H" role="1tU5fm">
<node concept="3uibUv" id="1zN1RIlmL6I" role="10Q1$1">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="1zN1RIlmL6J" role="11_B2D" />
</node>
</node>
<node concept="2ShNRf" id="1zN1RIlmL6K" role="33vP2m">
<node concept="3$_iS1" id="1zN1RIlmL6L" role="2ShVmc">
<node concept="3$GHV9" id="1zN1RIlmL6M" role="3$GQph">
<node concept="2OqwBi" id="1zN1RIlmL6N" role="3$I4v7">
<node concept="2OqwBi" id="1zN1RIlmL6O" role="2Oq$k0">
<node concept="37vLTw" id="1zN1RIlmL7j" role="2Oq$k0">
<ref role="3cqZAo" node="1zN1RIlmL7g" resolve="cst" />
</node>
<node concept="liA8E" id="1zN1RIlmL6Q" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_b06" resolve="arguments" />
</node>
</node>
<node concept="liA8E" id="1zN1RIlmL6R" role="2OqNvi">
<ref role="37wK5l" to="33ny:~List.size():int" resolve="size" />
</node>
</node>
</node>
<node concept="3uibUv" id="1zN1RIlmL6S" role="3$_nBY">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="1zN1RIlmL6T" role="11_B2D" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="1zN1RIlmL6U" role="3cqZAp">
<node concept="3cpWsn" id="1zN1RIlmL6V" role="3cpWs9">
<property role="TrG5h" value="i" />
<node concept="10Oyi0" id="1zN1RIlmL6W" role="1tU5fm" />
<node concept="3cmrfG" id="1zN1RIlmL6X" role="33vP2m">
<property role="3cmrfH" value="0" />
</node>
</node>
</node>
<node concept="1DcWWT" id="1zN1RIlmL6Y" role="3cqZAp">
<node concept="3clFbS" id="1zN1RIlmL6Z" role="2LFqv$">
<node concept="3clFbJ" id="PpXnWs6ucw" role="3cqZAp">
<node concept="3clFbS" id="PpXnWs6ucy" role="3clFbx">
<node concept="3clFbF" id="1zN1RIlmL70" role="3cqZAp">
<node concept="37vLTI" id="1zN1RIlmL71" role="3clFbG">
<node concept="2OqwBi" id="1zN1RIlmL72" role="37vLTx">
<node concept="37vLTw" id="1zN1RIlmL73" role="2Oq$k0">
<ref role="3cqZAo" node="1zN1RIlmL79" resolve="arg" />
</node>
<node concept="liA8E" id="1zN1RIlmL74" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.getClass():java.lang.Class" resolve="getClass" />
</node>
</node>
<node concept="AH0OO" id="1zN1RIlmL75" role="37vLTJ">
<node concept="3uNrnE" id="1zN1RIlmL76" role="AHEQo">
<node concept="37vLTw" id="1zN1RIlmL77" role="2$L3a6">
<ref role="3cqZAo" node="1zN1RIlmL6V" resolve="i" />
</node>
</node>
<node concept="37vLTw" id="1zN1RIlmL78" role="AHHXb">
<ref role="3cqZAo" node="1zN1RIlmL6G" resolve="argType" />
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="PpXnWs6uh6" role="3clFbw">
<node concept="10Nm6u" id="PpXnWs6ui0" role="3uHU7w" />
<node concept="37vLTw" id="PpXnWs6ugt" role="3uHU7B">
<ref role="3cqZAo" node="1zN1RIlmL79" resolve="arg" />
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="1zN1RIlmL79" role="1Duv9x">
<property role="TrG5h" value="arg" />
<node concept="3uibUv" id="1zN1RIlmL7a" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="2OqwBi" id="1zN1RIlmL7b" role="1DdaDG">
<node concept="37vLTw" id="1zN1RIlmL7i" role="2Oq$k0">
<ref role="3cqZAo" node="1zN1RIlmL7g" resolve="cst" />
</node>
<node concept="liA8E" id="1zN1RIlmL7d" role="2OqNvi">
<ref role="37wK5l" to="qrld:5uFPQ7B_b06" resolve="arguments" />
</node>
</node>
</node>
<node concept="3cpWs6" id="1zN1RIlmL7e" role="3cqZAp">
<node concept="37vLTw" id="1zN1RIlmL7f" role="3cqZAk">
<ref role="3cqZAo" node="1zN1RIlmL6G" resolve="argType" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2pvEdquu$2W" role="jymVt" />
<node concept="312cEg" id="7ISVfSJtsW" role="jymVt">
<property role="TrG5h" value="builtinSolvers" />
<node concept="3Tm6S6" id="7ISVfSJtsX" role="1B3o_S" />
<node concept="3uibUv" id="7ISVfSJtsY" role="1tU5fm">
<ref role="3uigEE" to="33ny:~Set" resolve="Set" />
<node concept="3uibUv" id="7ISVfSJuB_" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qUE_q" id="7ISVfSJuGO" role="11_B2D">
<node concept="3uibUv" id="7ISVfSJuJL" role="3qUE_r">
<ref role="3uigEE" to="qrld:6Kcfpq7AYBh" resolve="Queryable" />
</node>
</node>
</node>
</node>
<node concept="2ShNRf" id="7ISVfSJtt0" role="33vP2m">
<node concept="1pGfFk" id="7ISVfSJtt1" role="2ShVmc">
<ref role="37wK5l" to="33ny:~HashSet.&lt;init&gt;()" resolve="HashSet" />
<node concept="3uibUv" id="7ISVfSJuMt" role="1pMfVU">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qUE_q" id="7ISVfSJuMu" role="11_B2D">
<node concept="3uibUv" id="7ISVfSJuMv" role="3qUE_r">
<ref role="3uigEE" to="qrld:6Kcfpq7AYBh" resolve="Queryable" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2pvEdquuHIN" role="jymVt" />
<node concept="312cEg" id="7eGEHDley5W" role="jymVt">
<property role="TrG5h" value="userConstraintArgTypes" />
<node concept="3Tm6S6" id="7eGEHDley5X" role="1B3o_S" />
<node concept="3uibUv" id="7eGEHDley91" role="1tU5fm">
<ref role="3uigEE" to="33ny:~Map" resolve="Map" />
<node concept="3uibUv" id="30XHGaP58dI" role="11_B2D">
<ref role="3uigEE" to="qrld:54i3FxcZHHF" resolve="ConstraintSymbol" />
</node>
<node concept="10Q1$e" id="30XHGaP5w9F" role="11_B2D">
<node concept="3uibUv" id="30XHGaP5vi0" role="10Q1$1">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="30XHGaP5vQk" role="11_B2D" />
</node>
</node>
</node>
<node concept="2ShNRf" id="7eGEHDleyjJ" role="33vP2m">
<node concept="1pGfFk" id="7eGEHDle_f8" role="2ShVmc">
<ref role="37wK5l" to="33ny:~HashMap.&lt;init&gt;()" resolve="HashMap" />
<node concept="3uibUv" id="30XHGaP58v0" role="1pMfVU">
<ref role="3uigEE" to="qrld:54i3FxcZHHF" resolve="ConstraintSymbol" />
</node>
<node concept="10Q1$e" id="30XHGaP5wzv" role="1pMfVU">
<node concept="3uibUv" id="30XHGaP5wzw" role="10Q1$1">
<ref role="3uigEE" to="wyt6:~Class" resolve="Class" />
<node concept="3qTvmN" id="30XHGaP5wzx" role="11_B2D" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="312cEu" id="7Oc59RS$wKP">
<property role="TrG5h" value="InvalidRuleException" />
<node concept="2tJIrI" id="7Oc59RS$y8_" role="jymVt" />

View File

@ -17,7 +17,7 @@
<dependency reexport="false">65557aaa-5381-435d-b705-3f8d546e0f40(jetbrains.mps.ide.java.basePlatform)</dependency>
<dependency reexport="false">df345b11-b8c7-4213-ac66-48d2a9b75d88(jetbrains.mps.baseLanguageInternal)</dependency>
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
<dependency reexport="false">bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)</dependency>
<dependency reexport="true">bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)</dependency>
</dependencies>
<usedDevKits>
<usedDevKit>2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)</usedDevKit>

View File

@ -13,6 +13,7 @@
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" />
<import index="i8dg" ref="r:e8529b97-a186-4c32-8f12-771b2a92b55a(jetbrains.mps.logic.reactor.rule)" />
<import index="9kr0" ref="r:0f58be42-48ea-45ab-99f8-158393a0f526(jetbrains.mps.typechecking.handler.producer)" />
<import index="rchb" ref="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)" />
<import index="mhbf" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)" implicit="true" />
<import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
@ -314,6 +315,19 @@
</node>
</node>
</node>
<node concept="3clFbF" id="78CwJJcPpP_" role="3cqZAp">
<node concept="37vLTI" id="78CwJJcPpPB" role="3clFbG">
<node concept="2OqwBi" id="78CwJJcPpPF" role="37vLTJ">
<node concept="Xjq3P" id="78CwJJcPpPI" role="2Oq$k0" />
<node concept="2OwXpG" id="78CwJJcPpPE" role="2OqNvi">
<ref role="2Oxat5" node="78CwJJcPpPx" resolve="handler" />
</node>
</node>
<node concept="37vLTw" id="78CwJJcPpPJ" role="37vLTx">
<ref role="3cqZAo" node="78CwJJcPpB$" resolve="session" />
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="7Oc59RSyA1q" role="3clF46">
<property role="TrG5h" value="collection" />
@ -327,6 +341,12 @@
<ref role="3uigEE" to="i8dg:7eGEHDlc$ap" resolve="RuleBuilder" />
</node>
</node>
<node concept="37vLTG" id="78CwJJcPpB$" role="3clF46">
<property role="TrG5h" value="session" />
<node concept="3uibUv" id="78CwJJcPpB_" role="1tU5fm">
<ref role="3uigEE" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
</node>
</node>
<node concept="2tJIrI" id="7Oc59RSyviB" role="jymVt" />
<node concept="3clFb_" id="7nkyKX7ncaN" role="jymVt">
@ -335,12 +355,6 @@
<property role="TrG5h" value="root" />
<node concept="3Tqbb2" id="7nkyKX7njPe" role="1tU5fm" />
</node>
<node concept="37vLTG" id="7nkyKX7njPf" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="30XHGaPyv2i" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="3uibUv" id="7nkyKX7nfei" role="3clF45">
<ref role="3uigEE" to="4t1t:7Oc59RSEjdb" resolve="Result" />
</node>
@ -370,7 +384,7 @@
<node concept="3cpWsn" id="7nkyKX7nlpb" role="3cpWs9">
<property role="TrG5h" value="rule" />
<node concept="3uibUv" id="7nkyKX7nlp9" role="1tU5fm">
<ref role="3uigEE" to="i8dg:7eGEHDlc$9y" resolve="ConstraintRule" />
<ref role="3uigEE" to="i8dg:7eGEHDlc$9y" resolve="Rule" />
</node>
<node concept="2OqwBi" id="7nkyKX7nlpc" role="33vP2m">
<node concept="37vLTw" id="7nkyKX7nlpd" role="2Oq$k0">
@ -385,10 +399,10 @@
<node concept="3clFbF" id="7nkyKX7nlM0" role="3cqZAp">
<node concept="2OqwBi" id="7nkyKX7nlSO" role="3clFbG">
<node concept="37vLTw" id="7nkyKX7nlLY" role="2Oq$k0">
<ref role="3cqZAo" node="7nkyKX7njPf" resolve="handler" />
<ref role="3cqZAo" node="78CwJJcPpPx" resolve="handler" />
</node>
<node concept="liA8E" id="7nkyKX7nlVs" role="2OqNvi">
<ref role="37wK5l" to="9kr0:7eGEHDlcF9o" resolve="addRule" />
<ref role="37wK5l" to="rchb:5uFPQ7BvNSW" resolve="addRule" />
<node concept="37vLTw" id="7nkyKX7nmaO" role="37wK5m">
<ref role="3cqZAo" node="7nkyKX7nlpb" resolve="rule" />
</node>
@ -509,12 +523,6 @@
<node concept="2tJIrI" id="7Oc59RSy_Bt" role="jymVt" />
<node concept="3clFb_" id="5NuEpF1pL7f" role="jymVt">
<property role="TrG5h" value="generateAllWithNoInput" />
<node concept="37vLTG" id="5NuEpF1pL7i" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="5NuEpF1pL7j" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="37vLTG" id="3x8pcoFuNwM" role="3clF46">
<property role="TrG5h" value="postProcess" />
<node concept="10P_77" id="3x8pcoFuOpV" role="1tU5fm" />
@ -582,9 +590,6 @@
<ref role="3cqZAo" node="5NuEpF1qhgC" resolve="allTemplates" />
</node>
<node concept="10Nm6u" id="tIwzd1I_e6" role="37wK5m" />
<node concept="37vLTw" id="tIwzd1I_lv" role="37wK5m">
<ref role="3cqZAo" node="5NuEpF1pL7i" resolve="handler" />
</node>
<node concept="37vLTw" id="tIwzd1I_sr" role="37wK5m">
<ref role="3cqZAo" node="5NuEpF1pL7o" resolve="errors" />
</node>
@ -621,12 +626,6 @@
<property role="TrG5h" value="root" />
<node concept="3Tqbb2" id="12yN8DyNqcW" role="1tU5fm" />
</node>
<node concept="37vLTG" id="7Oc59RSzYH5" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="7Oc59RSzYS5" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="3uibUv" id="7Oc59RSFzo8" role="3clF45">
<ref role="3uigEE" to="4t1t:7Oc59RSEjdb" resolve="Result" />
</node>
@ -667,9 +666,6 @@
</node>
<node concept="1rXfSq" id="2JQZWxFb1vY" role="33vP2m">
<ref role="37wK5l" node="tIwzd1LouZ" resolve="walk" />
<node concept="37vLTw" id="2JQZWxFb1vZ" role="37wK5m">
<ref role="3cqZAo" node="7Oc59RSzYH5" resolve="handler" />
</node>
<node concept="37vLTw" id="2JQZWxFb1w0" role="37wK5m">
<ref role="3cqZAo" node="7Oc59RS_8eX" resolve="errors" />
</node>
@ -693,9 +689,6 @@
<node concept="37vLTw" id="2JQZWxFb1w3" role="37wK5m">
<ref role="3cqZAo" node="2JQZWxFb1vX" resolve="required_visited" />
</node>
<node concept="37vLTw" id="tIwzd1MM26" role="37wK5m">
<ref role="3cqZAo" node="7Oc59RSzYH5" resolve="handler" />
</node>
<node concept="37vLTw" id="tIwzd1MM27" role="37wK5m">
<ref role="3cqZAo" node="7Oc59RS_8eX" resolve="errors" />
</node>
@ -732,12 +725,6 @@
<property role="TrG5h" value="root" />
<node concept="3Tqbb2" id="3cHjmmLLyCd" role="1tU5fm" />
</node>
<node concept="37vLTG" id="3cHjmmLLyCe" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="3cHjmmLLyCf" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="3uibUv" id="3cHjmmLLyCg" role="3clF45">
<ref role="3uigEE" to="4t1t:7Oc59RSEjdb" resolve="Result" />
</node>
@ -778,9 +765,6 @@
</node>
<node concept="1rXfSq" id="2JQZWxFb6pa" role="33vP2m">
<ref role="37wK5l" node="tIwzd1LouZ" resolve="walk" />
<node concept="37vLTw" id="2JQZWxFb6pb" role="37wK5m">
<ref role="3cqZAo" node="3cHjmmLLyCe" resolve="handler" />
</node>
<node concept="37vLTw" id="2JQZWxFb6pc" role="37wK5m">
<ref role="3cqZAo" node="3cHjmmLLyCk" resolve="errors" />
</node>
@ -804,9 +788,6 @@
<node concept="37vLTw" id="2JQZWxFb6pf" role="37wK5m">
<ref role="3cqZAo" node="2JQZWxFb6p9" resolve="required_visited" />
</node>
<node concept="37vLTw" id="tIwzd1MUHs" role="37wK5m">
<ref role="3cqZAo" node="3cHjmmLLyCe" resolve="handler" />
</node>
<node concept="37vLTw" id="tIwzd1MUHt" role="37wK5m">
<ref role="3cqZAo" node="3cHjmmLLyCk" resolve="errors" />
</node>
@ -852,12 +833,6 @@
</node>
</node>
</node>
<node concept="37vLTG" id="tIwzd1MM1O" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="tIwzd1MM1P" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="37vLTG" id="tIwzd1MM1Q" role="3clF46">
<property role="TrG5h" value="errors" />
<node concept="_YKpA" id="tIwzd1MM1R" role="1tU5fm">
@ -937,9 +912,6 @@
</node>
<node concept="1rXfSq" id="tIwzd1MM1i" role="37vLTx">
<ref role="37wK5l" node="tIwzd1LKZY" resolve="walk" />
<node concept="37vLTw" id="tIwzd1MM1V" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1MM1O" resolve="handler" />
</node>
<node concept="37vLTw" id="tIwzd1MM1W" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1MM1Q" resolve="errors" />
</node>
@ -1017,12 +989,6 @@
<node concept="3Tqbb2" id="tIwzd1Lov5" role="3O5elw" />
</node>
</node>
<node concept="37vLTG" id="tIwzd1LouF" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="tIwzd1LouG" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="37vLTG" id="tIwzd1LouH" role="3clF46">
<property role="TrG5h" value="errors" />
<node concept="_YKpA" id="tIwzd1LouI" role="1tU5fm">
@ -1061,9 +1027,6 @@
<node concept="2ShNRf" id="tIwzd1Loui" role="37wK5m">
<node concept="1pGfFk" id="tIwzd1Louj" role="2ShVmc">
<ref role="37wK5l" node="5ntLU8GlTO6" resolve="TypecheckingRuleGenerator.TemplateApplicator" />
<node concept="37vLTw" id="tIwzd1LouN" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1LouF" resolve="handler" />
</node>
<node concept="37vLTw" id="tIwzd1LouM" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1LouH" resolve="errors" />
</node>
@ -1112,12 +1075,6 @@
<node concept="3Tqbb2" id="tIwzd1LL04" role="3O5elw" />
</node>
</node>
<node concept="37vLTG" id="tIwzd1LL05" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="tIwzd1LL06" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="37vLTG" id="tIwzd1LL07" role="3clF46">
<property role="TrG5h" value="errors" />
<node concept="_YKpA" id="tIwzd1LL08" role="1tU5fm">
@ -1154,9 +1111,6 @@
<node concept="2ShNRf" id="tIwzd1LL0q" role="37wK5m">
<node concept="1pGfFk" id="tIwzd1LL0r" role="2ShVmc">
<ref role="37wK5l" node="5ntLU8GlTO6" resolve="TypecheckingRuleGenerator.TemplateApplicator" />
<node concept="37vLTw" id="tIwzd1LL0s" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1LL05" resolve="handler" />
</node>
<node concept="37vLTw" id="tIwzd1LL0t" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1LL07" resolve="errors" />
</node>
@ -1366,12 +1320,6 @@
<property role="TrG5h" value="node" />
<node concept="3Tqbb2" id="tIwzd1I3Xq" role="1tU5fm" />
</node>
<node concept="37vLTG" id="tIwzd1I5gF" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="tIwzd1I5wW" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="37vLTG" id="tIwzd1I5Br" role="3clF46">
<property role="TrG5h" value="errors" />
<node concept="3vKaQO" id="tIwzd1I5Vt" role="1tU5fm">
@ -1452,7 +1400,7 @@
<node concept="3cpWsn" id="tIwzd1I3WB" role="3cpWs9">
<property role="TrG5h" value="rule" />
<node concept="3uibUv" id="tIwzd1I3WC" role="1tU5fm">
<ref role="3uigEE" to="i8dg:7eGEHDlc$9y" resolve="ConstraintRule" />
<ref role="3uigEE" to="i8dg:7eGEHDlc$9y" resolve="Rule" />
</node>
<node concept="2OqwBi" id="tIwzd1I3WD" role="33vP2m">
<node concept="2GrUjf" id="tIwzd1I3WE" role="2Oq$k0">
@ -1467,10 +1415,10 @@
<node concept="3clFbF" id="tIwzd1I3WG" role="3cqZAp">
<node concept="2OqwBi" id="tIwzd1I3WH" role="3clFbG">
<node concept="37vLTw" id="tIwzd1I3WI" role="2Oq$k0">
<ref role="3cqZAo" node="tIwzd1I5gF" resolve="handler" />
<ref role="3cqZAo" node="78CwJJcPpPx" resolve="handler" />
</node>
<node concept="liA8E" id="tIwzd1I3WJ" role="2OqNvi">
<ref role="37wK5l" to="9kr0:7eGEHDlcF9o" resolve="addRule" />
<ref role="37wK5l" to="rchb:5uFPQ7BvNSW" resolve="addRule" />
<node concept="37vLTw" id="tIwzd1I3WK" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1I3WB" resolve="rule" />
</node>
@ -1676,19 +1624,6 @@
<node concept="3cqZAl" id="5ntLU8GlTO8" role="3clF45" />
<node concept="3Tm6S6" id="5ntLU8GlTO9" role="1B3o_S" />
<node concept="3clFbS" id="5ntLU8GlTOa" role="3clF47">
<node concept="3clFbF" id="7Oc59RSysWx" role="3cqZAp">
<node concept="37vLTI" id="7Oc59RSysWz" role="3clFbG">
<node concept="2OqwBi" id="7Oc59RSysWB" role="37vLTJ">
<node concept="Xjq3P" id="7Oc59RSysWE" role="2Oq$k0" />
<node concept="2OwXpG" id="7Oc59RSysWA" role="2OqNvi">
<ref role="2Oxat5" node="7Oc59RSysWt" resolve="handler" />
</node>
</node>
<node concept="37vLTw" id="7Oc59RSysWF" role="37vLTx">
<ref role="3cqZAo" node="5ntLU8GlU0F" resolve="handler" />
</node>
</node>
</node>
<node concept="3clFbF" id="7Oc59RS_6Wb" role="3cqZAp">
<node concept="37vLTI" id="7Oc59RS_7Ej" role="3clFbG">
<node concept="37vLTw" id="7Oc59RS_7Nz" role="37vLTx">
@ -1703,12 +1638,6 @@
</node>
</node>
</node>
<node concept="37vLTG" id="5ntLU8GlU0F" role="3clF46">
<property role="TrG5h" value="handler" />
<node concept="3uibUv" id="7Oc59RSyq$6" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="37vLTG" id="7Oc59RS_5y5" role="3clF46">
<property role="TrG5h" value="errors" />
<node concept="3vKaQO" id="7Oc59RS_5Ix" role="1tU5fm">
@ -1788,9 +1717,6 @@
<node concept="37vLTw" id="tIwzd1I3X$" role="37wK5m">
<ref role="3cqZAo" node="5ntLU8GlzgG" resolve="node" />
</node>
<node concept="37vLTw" id="tIwzd1I57D" role="37wK5m">
<ref role="3cqZAo" node="7Oc59RSysWt" resolve="handler" />
</node>
<node concept="37vLTw" id="tIwzd1I5cM" role="37wK5m">
<ref role="3cqZAo" node="7Oc59RS$NXD" resolve="errors" />
</node>
@ -1962,14 +1888,6 @@
</node>
</node>
<node concept="2tJIrI" id="tIwzd1IQri" role="jymVt" />
<node concept="312cEg" id="7Oc59RSysWt" role="jymVt">
<property role="TrG5h" value="handler" />
<node concept="3Tm6S6" id="7Oc59RSysWu" role="1B3o_S" />
<node concept="3uibUv" id="7Oc59RSysWw" role="1tU5fm">
<ref role="3uigEE" to="9kr0:7eGEHDlcEJ0" resolve="ConstraintRulesHandler" />
</node>
</node>
<node concept="2tJIrI" id="tIwzd1HU2r" role="jymVt" />
<node concept="312cEg" id="7Oc59RS$NXD" role="jymVt">
<property role="34CwA1" value="false" />
<property role="eg7rD" value="false" />
@ -1999,6 +1917,13 @@
<ref role="3uigEE" to="i8dg:7eGEHDlc$ap" resolve="RuleBuilder" />
</node>
</node>
<node concept="312cEg" id="78CwJJcPpPx" role="jymVt">
<property role="TrG5h" value="handler" />
<node concept="3Tm6S6" id="78CwJJcPpPy" role="1B3o_S" />
<node concept="3uibUv" id="78CwJJcPpP$" role="1tU5fm">
<ref role="3uigEE" to="rchb:5uFPQ7BvNzE" resolve="PlanningSession" />
</node>
</node>
</node>
<node concept="312cEu" id="12yN8DyNqdl">
<property role="TrG5h" value="NodeWalker" />