Support for accessing logical context from expressions.

This commit is contained in:
Fedor Isakov 2017-03-27 19:27:11 +02:00
parent 3f910ec396
commit 30a9c1f8d5
4 changed files with 175 additions and 8 deletions

View File

@ -14820,6 +14820,14 @@
<node concept="3cpWs6" id="2UGjFq4pBLG" role="3cqZAp">
<node concept="1rXfSq" id="2UGjFq4pBLH" role="3cqZAk">
<ref role="37wK5l" node="1sCZQVeRKtT" resolve="eval_" />
<node concept="2OqwBi" id="60zk4o7pJo2" role="37wK5m">
<node concept="37vLTw" id="60zk4o7pIno" role="2Oq$k0">
<ref role="3cqZAo" node="2UGjFq4p$za" resolve="invocation" />
</node>
<node concept="liA8E" id="60zk4o7pKFq" role="2OqNvi">
<ref role="37wK5l" to="w7la:~PredicateInvocation.logicalContext():jetbrains.mps.logic.reactor.logical.LogicalContext" resolve="logicalContext" />
</node>
</node>
<node concept="10QFUN" id="2UGjFq4pBLI" role="37wK5m">
<node concept="3uibUv" id="2UGjFq4pBLJ" role="10QFUM">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
@ -15057,6 +15065,12 @@
<node concept="2tJIrI" id="1sCZQVeRJsW" role="jymVt" />
<node concept="3clFb_" id="1sCZQVeRKtT" role="jymVt">
<property role="TrG5h" value="eval_" />
<node concept="37vLTG" id="60zk4o7pD$U" role="3clF46">
<property role="TrG5h" value="_logicalContext" />
<node concept="3uibUv" id="60zk4o7pEWf" role="1tU5fm">
<ref role="3uigEE" to="bj13:~LogicalContext" resolve="LogicalContext" />
</node>
</node>
<node concept="37vLTG" id="1sCZQVeRK$3" role="3clF46">
<property role="TrG5h" value="arg" />
<node concept="3uibUv" id="1sCZQVeRKA4" role="1tU5fm">
@ -15154,7 +15168,7 @@
</node>
<node concept="3cpWs8" id="1sCZQVf6Tqg" role="3cqZAp">
<node concept="3cpWsn" id="1sCZQVf6Tqh" role="3cpWs9">
<property role="TrG5h" value="excopy" />
<property role="TrG5h" value="lexcopy" />
<node concept="2I9FWS" id="1sCZQVf6Tqi" role="1tU5fm">
<ref role="2I9WkF" to="wq2x:6p0DfM0pKSO" resolve="LogicalExpression" />
</node>
@ -15163,9 +15177,9 @@
<ref role="3cqZAo" node="1sCZQVf4BoJ" resolve="copy" />
</node>
<node concept="2Rf3mk" id="1sCZQVf6Tql" role="2OqNvi">
<node concept="1xMEDy" id="1sCZQVf6Tqm" role="1xVPHs">
<node concept="chp4Y" id="1sCZQVf6Tqn" role="ri$Ld">
<ref role="cht4Q" to="wq2x:6p0DfM0pKSO" resolve="LogicalExpression" />
<node concept="3gmYPX" id="60zk4o7wM9g" role="1xVPHs">
<node concept="3gn64h" id="60zk4o7wM9h" role="3gmYPZ">
<ref role="3gnhBz" to="wq2x:6p0DfM0pKSO" resolve="LogicalExpression" />
</node>
</node>
<node concept="hTh3S" id="1sCZQVf6Tqo" role="1xVPHs">
@ -15188,7 +15202,7 @@
<node concept="2OqwBi" id="1sCZQVf8L3G" role="33vP2m">
<node concept="2OqwBi" id="1sCZQVf8L3H" role="2Oq$k0">
<node concept="37vLTw" id="1sCZQVf8L3I" role="2Oq$k0">
<ref role="3cqZAo" node="1sCZQVf6Tqh" resolve="excopy" />
<ref role="3cqZAo" node="1sCZQVf6Tqh" resolve="lexcopy" />
</node>
<node concept="34jXtK" id="1sCZQVf8L3J" role="2OqNvi">
<node concept="37vLTw" id="1sCZQVf8L3K" role="25WWJ7">
@ -15235,7 +15249,7 @@
<node concept="3eOVzh" id="1sCZQVf8_kR" role="1Dwp0S">
<node concept="2OqwBi" id="1sCZQVf8_Zv" role="3uHU7w">
<node concept="37vLTw" id="1sCZQVf8_nj" role="2Oq$k0">
<ref role="3cqZAo" node="1sCZQVf6Tqh" resolve="excopy" />
<ref role="3cqZAo" node="1sCZQVf6Tqh" resolve="lexcopy" />
</node>
<node concept="34oBXx" id="1sCZQVf8DOA" role="2OqNvi" />
</node>
@ -15249,6 +15263,70 @@
</node>
</node>
</node>
<node concept="3cpWs8" id="60zk4o7wONo" role="3cqZAp">
<node concept="3cpWsn" id="60zk4o7wONp" role="3cpWs9">
<property role="TrG5h" value="lcexcopy" />
<node concept="2I9FWS" id="60zk4o7wONq" role="1tU5fm">
<ref role="2I9WkF" to="wq2x:60zk4o7reud" resolve="LogicalContextExpression" />
</node>
<node concept="2OqwBi" id="60zk4o7wONr" role="33vP2m">
<node concept="37vLTw" id="60zk4o7wONs" role="2Oq$k0">
<ref role="3cqZAo" node="1sCZQVf4BoJ" resolve="copy" />
</node>
<node concept="2Rf3mk" id="60zk4o7wONt" role="2OqNvi">
<node concept="3gmYPX" id="60zk4o7wONu" role="1xVPHs">
<node concept="3gn64h" id="60zk4o7wQGv" role="3gmYPZ">
<ref role="3gnhBz" to="wq2x:60zk4o7reud" resolve="LogicalContextExpression" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1DcWWT" id="60zk4o7wSEB" role="3cqZAp">
<node concept="3clFbS" id="60zk4o7wSEE" role="2LFqv$">
<node concept="3cpWs8" id="60zk4o7x9D5" role="3cqZAp">
<node concept="3cpWsn" id="60zk4o7x9D6" role="3cpWs9">
<property role="TrG5h" value="ivr" />
<node concept="3Tqbb2" id="60zk4o7x9D4" role="1tU5fm">
<ref role="ehGHo" to="tp68:h7VmV7M" resolve="InternalVariableReference" />
</node>
<node concept="2OqwBi" id="60zk4o7x9D7" role="33vP2m">
<node concept="37vLTw" id="60zk4o7x9D8" role="2Oq$k0">
<ref role="3cqZAo" node="60zk4o7wSEF" resolve="n" />
</node>
<node concept="1_qnLN" id="60zk4o7x9D9" role="2OqNvi">
<ref role="1_rbq0" to="tp68:h7VmV7M" resolve="InternalVariableReference" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="60zk4o7x1Rx" role="3cqZAp">
<node concept="2OqwBi" id="60zk4o7xgkM" role="3clFbG">
<node concept="2OqwBi" id="60zk4o7xcTi" role="2Oq$k0">
<node concept="37vLTw" id="60zk4o7x9Da" role="2Oq$k0">
<ref role="3cqZAo" node="60zk4o7x9D6" resolve="ivr" />
</node>
<node concept="3TrcHB" id="60zk4o7xe$t" role="2OqNvi">
<ref role="3TsBF5" to="tp68:h7VnrL9" resolve="name" />
</node>
</node>
<node concept="tyxLq" id="60zk4o7xi6F" role="2OqNvi">
<node concept="Xl_RD" id="60zk4o7xjF8" role="tz02z">
<property role="Xl_RC" value="_logicalContext" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="60zk4o7wSEF" role="1Duv9x">
<property role="TrG5h" value="n" />
<node concept="3Tqbb2" id="60zk4o7wUfJ" role="1tU5fm" />
</node>
<node concept="37vLTw" id="60zk4o7wSEK" role="1DdaDG">
<ref role="3cqZAo" node="60zk4o7wONp" resolve="lcexcopy" />
</node>
</node>
<node concept="3clFbF" id="1sCZQVf5rpf" role="3cqZAp">
<node concept="37vLTw" id="1sCZQVf5rpd" role="3clFbG">
<ref role="3cqZAo" node="1sCZQVf4BoJ" resolve="copy" />
@ -15308,8 +15386,8 @@
<node concept="3uibUv" id="6H279bUVoh4" role="EKbjA">
<ref role="3uigEE" to="w7la:~Queryable" resolve="Queryable" />
</node>
<node concept="3uibUv" id="5jCHAT2PtwH" role="1zkMxy">
<ref role="3uigEE" to="yg8f:5jCHAT2EKLb" resolve="AbstractLogicSolver" />
<node concept="3uibUv" id="60zk4o77j8n" role="1zkMxy">
<ref role="3uigEE" to="w7la:~AbstractSolver" resolve="AbstractSolver" />
</node>
</node>
<node concept="bUwia" id="1sCZQVeRS5H">

View File

@ -16,6 +16,7 @@
<import index="hy7p" ref="r:01ee26d6-df00-4ffb-931c-1ddec5984886(jetbrains.mps.lang.typesystem2.util)" />
<import index="ykok" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel.constraints(MPS.Core/)" />
<import index="35tq" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.scope(MPS.Core/)" />
<import index="cxk7" ref="r:daa544a7-0a5c-49c0-a54c-4c2a5b4868aa(jetbrains.mps.logic.builtin.predicate)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="5j4j" ref="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" implicit="true" />
<import index="tpek" ref="r:00000000-0000-4000-0000-011c895902c0(jetbrains.mps.baseLanguage.behavior)" implicit="true" />
@ -147,12 +148,16 @@
<concept id="1233758997495" name="jetbrains.mps.lang.editor.structure.PunctuationLeftStyleClassItem" flags="ln" index="11L4FC" />
<concept id="1233759184865" name="jetbrains.mps.lang.editor.structure.PunctuationRightStyleClassItem" flags="ln" index="11LMrY" />
<concept id="3383245079137382180" name="jetbrains.mps.lang.editor.structure.StyleClass" flags="ig" index="14StLt" />
<concept id="8998492695583109601" name="jetbrains.mps.lang.editor.structure.QueryFunction_SubstituteMenu_CanSubstitute" flags="ig" index="16Na2f" />
<concept id="8998492695583125082" name="jetbrains.mps.lang.editor.structure.SubstituteFeature_MatchingText" flags="ng" index="16NfWO">
<child id="8998492695583129244" name="query" index="16NeZM" />
</concept>
<concept id="8998492695583129971" name="jetbrains.mps.lang.editor.structure.SubstituteFeature_DescriptionText" flags="ng" index="16NL0t">
<child id="8998492695583129972" name="query" index="16NL0q" />
</concept>
<concept id="8998492695583129991" name="jetbrains.mps.lang.editor.structure.SubstituteFeature_CanSubstitute" flags="ng" index="16NL3D">
<child id="8998492695583129992" name="query" index="16NL3A" />
</concept>
<concept id="1154465273778" name="jetbrains.mps.lang.editor.structure.QueryFunctionParameter_SubstituteMenu_ParentNode" flags="nn" index="3bvxqY" />
<concept id="1838685759388685703" name="jetbrains.mps.lang.editor.structure.TransformationFeature_DescriptionText" flags="ng" index="3cqGtN">
<child id="1838685759388685704" name="query" index="3cqGtW" />
@ -5954,5 +5959,57 @@
<node concept="l2Vlx" id="4nIWweBWncv" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="60zk4o7reO3">
<ref role="1XX52x" to="wq2x:60zk4o7reud" resolve="LogicalContextExpression" />
<node concept="3EZMnI" id="60zk4o7reO5" role="2wV5jI">
<node concept="PMmxH" id="60zk4o7reOc" role="3EZMnx">
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
</node>
<node concept="l2Vlx" id="60zk4o7reO8" role="2iSdaV" />
</node>
</node>
<node concept="3p36aQ" id="60zk4o7rjGu">
<ref role="aqKnT" to="wq2x:60zk4o7reud" resolve="LogicalContextExpression" />
<node concept="3ft5Ry" id="60zk4o7rjGM" role="3ft7WO">
<ref role="4PJHt" to="wq2x:60zk4o7reud" resolve="LogicalContextExpression" />
</node>
<node concept="3eGOop" id="60zk4o7rjGV" role="3ft7WO">
<node concept="ucgPf" id="60zk4o7rjGX" role="3aKz83">
<node concept="3clFbS" id="60zk4o7rjGZ" role="2VODD2">
<node concept="3clFbF" id="60zk4o7rke2" role="3cqZAp">
<node concept="2ShNRf" id="60zk4o7rke0" role="3clFbG">
<node concept="3zrR0B" id="60zk4o7rkQR" role="2ShVmc">
<node concept="3Tqbb2" id="60zk4o7rkQT" role="3zrR0E">
<ref role="ehGHo" to="wq2x:60zk4o7reud" resolve="LogicalContextExpression" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="16NL3D" id="60zk4o7rjSy" role="upBLP">
<node concept="16Na2f" id="60zk4o7rjSz" role="16NL3A">
<node concept="3clFbS" id="60zk4o7rjS$" role="2VODD2">
<node concept="3clFbF" id="60zk4o7rk3B" role="3cqZAp">
<node concept="2OqwBi" id="60zk4o7rmgB" role="3clFbG">
<node concept="2OqwBi" id="60zk4o7rlsL" role="2Oq$k0">
<node concept="3bvxqY" id="60zk4o7rk3A" role="2Oq$k0" />
<node concept="2Xjw5R" id="60zk4o7rlE6" role="2OqNvi">
<node concept="3gmYPX" id="60zk4o7rRh8" role="1xVPHs">
<node concept="3gn64h" id="60zk4o7rRID" role="3gmYPZ">
<ref role="3gnhBz" to="wq2x:4EfgX2EvF4i" resolve="ExpressionConstraint" />
</node>
</node>
<node concept="1xIGOp" id="60zk4o7rn3v" role="1xVPHs" />
</node>
</node>
<node concept="3x8VRR" id="60zk4o7rmDV" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</model>

View File

@ -1342,5 +1342,11 @@
<ref role="20lvS9" to="5j4j:7E86$tKsl45" resolve="LogicalItem" />
</node>
</node>
<node concept="1TIwiD" id="60zk4o7reud">
<property role="EcuMT" value="6927468913528465293" />
<property role="TrG5h" value="LogicalContextExpression" />
<property role="34LRSv" value="logicalContext" />
<ref role="1TJDcQ" to="tpee:fz3vP1J" resolve="Expression" />
</node>
</model>

View File

@ -15,6 +15,7 @@
<import index="tpek" ref="r:00000000-0000-4000-0000-011c895902c0(jetbrains.mps.baseLanguage.behavior)" />
<import index="nz6g" ref="r:ac00f724-30be-446e-805c-2345efc460d7(jetbrains.mps.lang.typesystem2.program)" />
<import index="6exd" ref="r:0f9b1fb3-00f9-4480-b235-1a906a087ab2(jetbrains.mps.logic.treeform)" />
<import index="bj13" ref="bbf5c548-7111-4a53-a117-cdefc664cf34/java:jetbrains.mps.logic.reactor.logical(jetbrains.mps.logic.reactor/)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
</imports>
@ -1432,5 +1433,30 @@
<ref role="1YaFvo" to="wq2x:4MEOIDFxxDM" resolve="TypeTermDeclarationParameterReference" />
</node>
</node>
<node concept="1YbPZF" id="60zk4o7revn">
<property role="TrG5h" value="typeof_LogicalContextExpression" />
<node concept="3clFbS" id="60zk4o7revo" role="18ibNy">
<node concept="1Z5TYs" id="60zk4o7reE1" role="3cqZAp">
<node concept="mw_s8" id="60zk4o7reII" role="1ZfhKB">
<node concept="2c44tf" id="60zk4o7reIE" role="mwGJk">
<node concept="3uibUv" id="60zk4o7reL5" role="2c44tc">
<ref role="3uigEE" to="bj13:~LogicalContext" resolve="LogicalContext" />
</node>
</node>
</node>
<node concept="mw_s8" id="60zk4o7reE4" role="1ZfhK$">
<node concept="1Z2H0r" id="60zk4o7revx" role="mwGJk">
<node concept="1YBJjd" id="60zk4o7rexh" role="1Z2MuG">
<ref role="1YBMHb" node="60zk4o7revq" resolve="lce" />
</node>
</node>
</node>
</node>
</node>
<node concept="1YaCAy" id="60zk4o7revq" role="1YuTPh">
<property role="TrG5h" value="lce" />
<ref role="1YaFvo" to="wq2x:60zk4o7reud" resolve="LogicalContextExpression" />
</node>
</node>
</model>