Apply rule templates from all stages in one pass.

A heuristic to collect nodes required for local typechecking.
Minor changes in typesystem2 runtime.
This commit is contained in:
Fedor Isakov 2017-09-14 18:54:19 +02:00
parent bad0e86d85
commit 2b123d9f42
5 changed files with 1139 additions and 642 deletions

View File

@ -1180,9 +1180,16 @@
</node>
</node>
<node concept="37vLTG" id="7kTeLbPnSnQ" role="1bW2Oz">
<property role="TrG5h" value="programBuilder" />
<node concept="3uibUv" id="7kTeLbPnStL" role="1tU5fm">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
<property role="TrG5h" value="stage_builders" />
<node concept="_YKpA" id="4vBwiiVemA9" role="1tU5fm">
<node concept="1LlUBW" id="4vBwiiVemAa" role="_ZDj9">
<node concept="3uibUv" id="4vBwiiVemAb" role="1Lm7xW">
<ref role="3uigEE" to="i348:1CcQBrPcZVG" resolve="HandlingStage" />
</node>
<node concept="3uibUv" id="4vBwiiVemAc" role="1Lm7xW">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
</node>
</node>
</node>
</node>
<node concept="3clFbS" id="7kTeLbPnS8P" role="1bW5cS">
@ -1197,7 +1204,7 @@
<ref role="3cqZAo" node="3GlpCDSybFH" resolve="root" />
</node>
<node concept="37vLTw" id="7kTeLbPnUky" role="37wK5m">
<ref role="3cqZAo" node="7kTeLbPnSnQ" resolve="programBuilder" />
<ref role="3cqZAo" node="7kTeLbPnSnQ" resolve="stage_builders" />
</node>
</node>
</node>
@ -1248,9 +1255,16 @@
</node>
</node>
<node concept="37vLTG" id="7kTeLbPojCM" role="1bW2Oz">
<property role="TrG5h" value="programBuilder" />
<node concept="3uibUv" id="7kTeLbPojCN" role="1tU5fm">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
<property role="TrG5h" value="stage_builders" />
<node concept="_YKpA" id="4vBwiiVem7I" role="1tU5fm">
<node concept="1LlUBW" id="4vBwiiVem7J" role="_ZDj9">
<node concept="3uibUv" id="4vBwiiVem7K" role="1Lm7xW">
<ref role="3uigEE" to="i348:1CcQBrPcZVG" resolve="HandlingStage" />
</node>
<node concept="3uibUv" id="4vBwiiVem7L" role="1Lm7xW">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
</node>
</node>
</node>
</node>
<node concept="3clFbS" id="7kTeLbPojCO" role="1bW5cS">
@ -1265,7 +1279,7 @@
<ref role="3cqZAo" node="7kTeLbPojCA" resolve="nodes" />
</node>
<node concept="37vLTw" id="7kTeLbPojCV" role="37wK5m">
<ref role="3cqZAo" node="7kTeLbPojCM" resolve="programBuilder" />
<ref role="3cqZAo" node="7kTeLbPojCM" resolve="stage_builders" />
</node>
</node>
</node>
@ -1314,8 +1328,15 @@
<node concept="3uibUv" id="7kTeLbPnFRu" role="1ajw0F">
<ref role="3uigEE" to="hano:12yN8DyF_E1" resolve="ProgramProducer" />
</node>
<node concept="3uibUv" id="7kTeLbPnG79" role="1ajw0F">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
<node concept="_YKpA" id="4vBwiiVbNcz" role="1ajw0F">
<node concept="1LlUBW" id="4vBwiiVbNji" role="_ZDj9">
<node concept="3uibUv" id="4vBwiiVbNx9" role="1Lm7xW">
<ref role="3uigEE" to="i348:1CcQBrPcZVG" resolve="HandlingStage" />
</node>
<node concept="3uibUv" id="4vBwiiVbNJW" role="1Lm7xW">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
</node>
</node>
</node>
<node concept="3uibUv" id="7kTeLbPnOYu" role="1ajl9A">
<ref role="3uigEE" to="hano:7Oc59RSEjdb" resolve="Result" />
@ -1375,124 +1396,157 @@
</node>
</node>
</node>
<node concept="3clFbH" id="7kTeLbPnP2_" role="3cqZAp" />
<node concept="3cpWs8" id="4vBwiiVeBq4" role="3cqZAp">
<node concept="3cpWsn" id="4vBwiiVeBq5" role="3cpWs9">
<property role="TrG5h" value="producer" />
<node concept="3uibUv" id="4vBwiiVeBpZ" role="1tU5fm">
<ref role="3uigEE" to="hano:12yN8DyF_E1" resolve="ProgramProducer" />
</node>
<node concept="2ShNRf" id="4vBwiiVeBq6" role="33vP2m">
<node concept="1pGfFk" id="4vBwiiVeBq7" role="2ShVmc">
<ref role="37wK5l" to="hano:7Oc59RSy_Op" resolve="ProgramProducer" />
<node concept="37vLTw" id="4vBwiiVeBq8" role="37wK5m">
<ref role="3cqZAo" node="4QPCta1$4db" resolve="typeAspectRuntime" />
</node>
<node concept="37vLTw" id="4vBwiiVeBq9" role="37wK5m">
<ref role="3cqZAo" node="7kTeLbPnP2w" resolve="applicationSession" />
</node>
<node concept="37vLTw" id="4vBwiiVeBqa" role="37wK5m">
<ref role="3cqZAo" node="7kTeLbPnP2m" resolve="mainConstraint" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="4vBwiiVefTj" role="3cqZAp">
<node concept="3cpWsn" id="4vBwiiVefTk" role="3cpWs9">
<property role="TrG5h" value="stage_builders" />
<node concept="_YKpA" id="4vBwiiVefSq" role="1tU5fm">
<node concept="1LlUBW" id="4vBwiiVefSz" role="_ZDj9">
<node concept="3uibUv" id="4vBwiiVefS$" role="1Lm7xW">
<ref role="3uigEE" to="i348:1CcQBrPcZVG" resolve="HandlingStage" />
</node>
<node concept="3uibUv" id="4vBwiiVefS_" role="1Lm7xW">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
</node>
</node>
</node>
<node concept="2OqwBi" id="4vBwiiVefTl" role="33vP2m">
<node concept="2OqwBi" id="4vBwiiVefTm" role="2Oq$k0">
<node concept="2OqwBi" id="4vBwiiVefTn" role="2Oq$k0">
<node concept="2OqwBi" id="4vBwiiVefTo" role="2Oq$k0">
<node concept="37vLTw" id="4vBwiiVefTp" role="2Oq$k0">
<ref role="3cqZAo" node="4QPCta1$4db" resolve="typeAspectRuntime" />
</node>
<node concept="liA8E" id="4vBwiiVefTq" role="2OqNvi">
<ref role="37wK5l" to="hano:4QPCta1yW5f" resolve="getRuleTemplateIndex" />
</node>
</node>
<node concept="liA8E" id="4vBwiiVefTr" role="2OqNvi">
<ref role="37wK5l" to="hano:4QPCta1zKCT" resolve="stages" />
</node>
</node>
<node concept="3$u5V9" id="4vBwiiVefTs" role="2OqNvi">
<node concept="1bVj0M" id="4vBwiiVefTt" role="23t8la">
<node concept="3clFbS" id="4vBwiiVefTu" role="1bW5cS">
<node concept="3clFbF" id="4vBwiiVefTv" role="3cqZAp">
<node concept="1Ls8ON" id="4vBwiiVefTw" role="3clFbG">
<node concept="37vLTw" id="4vBwiiVefTx" role="1Lso8e">
<ref role="3cqZAo" node="4vBwiiVefT$" resolve="it" />
</node>
<node concept="2ShNRf" id="4vBwiiVefTy" role="1Lso8e">
<node concept="1pGfFk" id="4vBwiiVefTz" role="2ShVmc">
<ref role="37wK5l" to="7n8k:5rhZO$TZ9Ji" resolve="ChrProgramBuilder" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="4vBwiiVefT$" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="4vBwiiVefT_" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="ANE8D" id="4vBwiiVefTA" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbH" id="4vBwiiVe5IU" role="3cqZAp" />
<node concept="3cpWs8" id="7kTeLbPnP2A" role="3cqZAp">
<node concept="3cpWsn" id="7kTeLbPnP2B" role="3cpWs9">
<property role="TrG5h" value="result" />
<node concept="3uibUv" id="7kTeLbPnP2C" role="1tU5fm">
<ref role="3uigEE" to="hano:7Oc59RSEjdb" resolve="Result" />
</node>
<node concept="2YIFZM" id="7kTeLbPnP2D" role="33vP2m">
<ref role="37wK5l" to="hano:7Oc59RSEjeq" resolve="OK" />
<ref role="1Pybhc" to="hano:7Oc59RSEjdb" resolve="Result" />
</node>
</node>
</node>
<node concept="3cpWs8" id="7kTeLbPnP2E" role="3cqZAp">
<node concept="3cpWsn" id="7kTeLbPnP2F" role="3cpWs9">
<property role="TrG5h" value="stageIdx" />
<node concept="10Oyi0" id="7kTeLbPnP2G" role="1tU5fm" />
<node concept="3cmrfG" id="7kTeLbPnP2H" role="33vP2m">
<property role="3cmrfH" value="1" />
</node>
</node>
</node>
<node concept="1DcWWT" id="7kTeLbPnP2I" role="3cqZAp">
<node concept="3clFbS" id="7kTeLbPnP2J" role="2LFqv$">
<node concept="3cpWs8" id="7kTeLbPnP2K" role="3cqZAp">
<node concept="3cpWsn" id="7kTeLbPnP2L" role="3cpWs9">
<property role="TrG5h" value="programBuilder" />
<node concept="3uibUv" id="7kTeLbPnP2M" role="1tU5fm">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
</node>
<node concept="2ShNRf" id="7kTeLbPnP2N" role="33vP2m">
<node concept="1pGfFk" id="7kTeLbPnP2O" role="2ShVmc">
<ref role="37wK5l" to="7n8k:5rhZO$TZ9Ji" resolve="ChrProgramBuilder" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="7kTeLbPnP2P" role="3cqZAp" />
<node concept="3clFbF" id="7kTeLbPnP2Q" role="3cqZAp">
<node concept="37vLTI" id="7kTeLbPnP2R" role="3clFbG">
<node concept="2OqwBi" id="7kTeLbPnP2S" role="37vLTx">
<node concept="37vLTw" id="7kTeLbPnP2T" role="2Oq$k0">
<ref role="3cqZAo" node="7kTeLbPnP2B" resolve="result" />
</node>
<node concept="liA8E" id="7kTeLbPnP2U" role="2OqNvi">
<ref role="37wK5l" to="hano:7nkyKX7v7xb" resolve="and" />
<node concept="1rXfSq" id="7kTeLbPnP2V" role="37wK5m">
<ref role="37wK5l" node="7kTeLbPg82h" resolve="withMemoizer" />
<node concept="1bVj0M" id="7kTeLbPnP2W" role="37wK5m">
<node concept="3clFbS" id="7kTeLbPnP2X" role="1bW5cS">
<node concept="3clFbF" id="7kTeLbPnPWi" role="3cqZAp">
<node concept="2Sg_IR" id="7kTeLbPnQ4_" role="3clFbG">
<node concept="2ShNRf" id="7kTeLbPnQ8M" role="2SgHGx">
<node concept="1pGfFk" id="7kTeLbPnQ8N" role="2ShVmc">
<ref role="37wK5l" to="hano:7Oc59RSy_Op" resolve="ProgramProducer" />
<node concept="37vLTw" id="7kTeLbPnQ8O" role="37wK5m">
<ref role="3cqZAo" node="4QPCta1$4db" resolve="typeAspectRuntime" />
</node>
<node concept="37vLTw" id="7kTeLbPnQ8P" role="37wK5m">
<ref role="3cqZAo" node="7kTeLbPnP2w" resolve="applicationSession" />
</node>
<node concept="37vLTw" id="7kTeLbPnQ8Q" role="37wK5m">
<ref role="3cqZAo" node="7kTeLbPnP2m" resolve="mainConstraint" />
</node>
<node concept="37vLTw" id="7kTeLbQ9V3N" role="37wK5m">
<ref role="3cqZAo" node="7kTeLbPnP3_" resolve="stage" />
</node>
</node>
</node>
<node concept="37vLTw" id="7kTeLbPnQB4" role="2SgHGx">
<ref role="3cqZAo" node="7kTeLbPnP2L" resolve="programBuilder" />
</node>
<node concept="37vLTw" id="7kTeLbPnQ4A" role="2SgG2M">
<ref role="3cqZAo" node="7kTeLbPnFaf" resolve="buildAction" />
</node>
</node>
</node>
<node concept="3clFbH" id="7kTeLbPnP39" role="3cqZAp" />
</node>
<node concept="1rXfSq" id="4vBwiiVeFWN" role="33vP2m">
<ref role="37wK5l" node="7kTeLbPg82h" resolve="withMemoizer" />
<node concept="1bVj0M" id="4vBwiiVeFWO" role="37wK5m">
<node concept="3clFbS" id="4vBwiiVeFWP" role="1bW5cS">
<node concept="3clFbF" id="4vBwiiVeFWQ" role="3cqZAp">
<node concept="2Sg_IR" id="4vBwiiVeFWR" role="3clFbG">
<node concept="37vLTw" id="4vBwiiVeFWS" role="2SgHGx">
<ref role="3cqZAo" node="4vBwiiVeBq5" resolve="producer" />
</node>
<node concept="37vLTw" id="4vBwiiVeFWT" role="2SgHGx">
<ref role="3cqZAo" node="4vBwiiVefTk" resolve="stage_builders" />
</node>
<node concept="37vLTw" id="4vBwiiVeFWU" role="2SgG2M">
<ref role="3cqZAo" node="7kTeLbPnFaf" resolve="buildAction" />
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="7kTeLbPnP3a" role="37vLTJ">
<ref role="3cqZAo" node="7kTeLbPnP2B" resolve="result" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="4vBwiiVen0J" role="3cqZAp">
<node concept="3clFbS" id="4vBwiiVen0K" role="3clFbx">
<node concept="3cpWs8" id="7kTeLbPnP2E" role="3cqZAp">
<node concept="3cpWsn" id="7kTeLbPnP2F" role="3cpWs9">
<property role="TrG5h" value="stageIdx" />
<node concept="10Oyi0" id="7kTeLbPnP2G" role="1tU5fm" />
<node concept="3cmrfG" id="7kTeLbPnP2H" role="33vP2m">
<property role="3cmrfH" value="1" />
</node>
</node>
</node>
<node concept="3clFbH" id="7kTeLbPnP3b" role="3cqZAp" />
<node concept="3clFbJ" id="7kTeLbPnP3c" role="3cqZAp">
<node concept="3clFbS" id="7kTeLbPnP3d" role="3clFbx">
<node concept="3clFbF" id="7kTeLbPnP3e" role="3cqZAp">
<node concept="2OqwBi" id="7kTeLbPnP3f" role="3clFbG">
<node concept="2OqwBi" id="7kTeLbPnP3g" role="2Oq$k0">
<node concept="Xjq3P" id="7kTeLbPnP3h" role="2Oq$k0" />
<node concept="2OwXpG" id="7kTeLbPnP3i" role="2OqNvi">
<node concept="1DcWWT" id="4vBwiiVep0Q" role="3cqZAp">
<node concept="3clFbS" id="4vBwiiVep0T" role="2LFqv$">
<node concept="3clFbF" id="4vBwiiVen0L" role="3cqZAp">
<node concept="2OqwBi" id="4vBwiiVen0M" role="3clFbG">
<node concept="2OqwBi" id="4vBwiiVen0N" role="2Oq$k0">
<node concept="Xjq3P" id="4vBwiiVen0O" role="2Oq$k0" />
<node concept="2OwXpG" id="4vBwiiVen0P" role="2OqNvi">
<ref role="2Oxat5" node="1pPth$lE8Xs" resolve="programs" />
</node>
</node>
<node concept="TSZUe" id="7kTeLbPnP3j" role="2OqNvi">
<node concept="2OqwBi" id="7kTeLbPnP3k" role="25WWJ7">
<node concept="37vLTw" id="7kTeLbPnP3l" role="2Oq$k0">
<ref role="3cqZAo" node="7kTeLbPnP2L" resolve="programBuilder" />
<node concept="TSZUe" id="4vBwiiVen0Q" role="2OqNvi">
<node concept="2OqwBi" id="4vBwiiVen0R" role="25WWJ7">
<node concept="1LFfDK" id="4vBwiiVexUs" role="2Oq$k0">
<node concept="3cmrfG" id="4vBwiiVeyfV" role="1LF_Uc">
<property role="3cmrfH" value="1" />
</node>
<node concept="37vLTw" id="4vBwiiVexk7" role="1LFl5Q">
<ref role="3cqZAo" node="4vBwiiVep0U" resolve="stage_builder" />
</node>
</node>
<node concept="liA8E" id="7kTeLbPnP3m" role="2OqNvi">
<node concept="liA8E" id="4vBwiiVen0T" role="2OqNvi">
<ref role="37wK5l" to="7n8k:5rhZO$TZiL1" resolve="toProgram" />
<node concept="3cpWs3" id="7kTeLbPnP3n" role="37wK5m">
<node concept="3cpWs3" id="7kTeLbPnP3o" role="3uHU7B">
<node concept="37vLTw" id="7kTeLbPnP3p" role="3uHU7B">
<node concept="3cpWs3" id="4vBwiiVen0U" role="37wK5m">
<node concept="3cpWs3" id="4vBwiiVen0V" role="3uHU7B">
<node concept="37vLTw" id="4vBwiiVen0W" role="3uHU7B">
<ref role="3cqZAo" node="7kTeLbPo56q" resolve="nameHint" />
</node>
<node concept="Xl_RD" id="7kTeLbPnP3q" role="3uHU7w">
<node concept="Xl_RD" id="4vBwiiVen0X" role="3uHU7w">
<property role="Xl_RC" value="-" />
</node>
</node>
<node concept="1eOMI4" id="7kTeLbPnP3r" role="3uHU7w">
<node concept="3uNrnE" id="7kTeLbPnP3s" role="1eOMHV">
<node concept="37vLTw" id="7kTeLbPnP3t" role="2$L3a6">
<node concept="1eOMI4" id="4vBwiiVen0Y" role="3uHU7w">
<node concept="3uNrnE" id="4vBwiiVen0Z" role="1eOMHV">
<node concept="37vLTw" id="4vBwiiVen10" role="2$L3a6">
<ref role="3cqZAo" node="7kTeLbPnP2F" resolve="stageIdx" />
</node>
</node>
@ -1503,40 +1557,29 @@
</node>
</node>
</node>
<node concept="3clFbH" id="7kTeLbPnP3u" role="3cqZAp" />
</node>
<node concept="2OqwBi" id="7kTeLbPnP3v" role="3clFbw">
<node concept="37vLTw" id="7kTeLbPnP3w" role="2Oq$k0">
<ref role="3cqZAo" node="7kTeLbPnP2B" resolve="result" />
</node>
<node concept="liA8E" id="7kTeLbPnP3x" role="2OqNvi">
<ref role="37wK5l" to="hano:7Oc59RS_hsj" resolve="isSuccessful" />
<node concept="3cpWsn" id="4vBwiiVep0U" role="1Duv9x">
<property role="TrG5h" value="stage_builder" />
<node concept="1LlUBW" id="4vBwiiVep0Y" role="1tU5fm">
<node concept="3uibUv" id="4vBwiiVep0Z" role="1Lm7xW">
<ref role="3uigEE" to="i348:1CcQBrPcZVG" resolve="HandlingStage" />
</node>
<node concept="3uibUv" id="4vBwiiVep10" role="1Lm7xW">
<ref role="3uigEE" to="7n8k:5rhZO$TYZJM" resolve="ChrProgramBuilder" />
</node>
</node>
</node>
<node concept="9aQIb" id="7kTeLbPnP3y" role="9aQIa">
<node concept="3clFbS" id="7kTeLbPnP3z" role="9aQI4">
<node concept="3zACq4" id="7kTeLbPnP3$" role="3cqZAp" />
</node>
<node concept="37vLTw" id="4vBwiiVep11" role="1DdaDG">
<ref role="3cqZAo" node="4vBwiiVefTk" resolve="stage_builders" />
</node>
</node>
</node>
<node concept="3cpWsn" id="7kTeLbPnP3_" role="1Duv9x">
<property role="TrG5h" value="stage" />
<node concept="3uibUv" id="7kTeLbPnP3A" role="1tU5fm">
<ref role="3uigEE" to="i348:1CcQBrPcZVG" resolve="HandlingStage" />
<node concept="2OqwBi" id="4vBwiiVen12" role="3clFbw">
<node concept="37vLTw" id="4vBwiiVen13" role="2Oq$k0">
<ref role="3cqZAo" node="7kTeLbPnP2B" resolve="result" />
</node>
</node>
<node concept="2OqwBi" id="7kTeLbPnP3B" role="1DdaDG">
<node concept="2OqwBi" id="7kTeLbPnP3C" role="2Oq$k0">
<node concept="37vLTw" id="7kTeLbPnP3D" role="2Oq$k0">
<ref role="3cqZAo" node="4QPCta1$4db" resolve="typeAspectRuntime" />
</node>
<node concept="liA8E" id="7kTeLbPnP3E" role="2OqNvi">
<ref role="37wK5l" to="hano:4QPCta1yW5f" resolve="getRuleTemplateIndex" />
</node>
</node>
<node concept="liA8E" id="7kTeLbPnP3F" role="2OqNvi">
<ref role="37wK5l" to="hano:4QPCta1zKCT" resolve="stages" />
<node concept="liA8E" id="4vBwiiVen14" role="2OqNvi">
<ref role="37wK5l" to="hano:7Oc59RS_hsj" resolve="isSuccessful" />
</node>
</node>
</node>

View File

@ -17,6 +17,7 @@
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="5" />
<language slang="l:774bf8a0-62e5-41e1-af63-f4812e60e48b:jetbrains.mps.baseLanguage.checkedDots" version="0" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="0" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
@ -27,6 +28,7 @@
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="8" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:35320f26-77cb-4c55-be9f-a97a27770af1:jetbrains.mps.logic" version="0" />
<language slang="l:0b80a2e8-f9f1-47b3-823f-56eb115bca42:jetbrains.mps.typechecking.annotation" version="0" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />

View File

@ -223,6 +223,7 @@
<child id="1144231399730" name="condition" index="1Dwp0S" />
<child id="1144231408325" name="iteration" index="1Dwrff" />
</concept>
<concept id="1107796713796" name="jetbrains.mps.baseLanguage.structure.Interface" flags="ig" index="3HP615" />
<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" />
@ -2555,6 +2556,23 @@
<property role="TrG5h" value="RuleApplicationSession" />
<property role="1sVAO0" value="true" />
<node concept="2tJIrI" id="18kNIl1vDQp" role="jymVt" />
<node concept="3HP615" id="4vBwiiV6130" role="jymVt">
<property role="2bfB8j" value="false" />
<property role="TrG5h" value="RuleApplicationSessionListener" />
<node concept="3clFb_" id="4vBwiiV65KJ" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="asType" />
<node concept="37vLTG" id="4vBwiiV660X" role="3clF46">
<property role="TrG5h" value="typeNode" />
<node concept="3Tqbb2" id="4vBwiiV665_" role="1tU5fm" />
</node>
<node concept="3cqZAl" id="4vBwiiV65KL" role="3clF45" />
<node concept="3Tm1VV" id="4vBwiiV65KM" role="1B3o_S" />
<node concept="3clFbS" id="4vBwiiV65KN" role="3clF47" />
</node>
<node concept="3Tm1VV" id="4vBwiiV6131" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="4vBwiiV5X32" role="jymVt" />
<node concept="3clFb_" id="18kNIl1wWgU" role="jymVt">
<property role="TrG5h" value="asType" />
<property role="1EzhhJ" value="true" />
@ -2678,6 +2696,34 @@
<property role="TrG5h" value="K" />
</node>
</node>
<node concept="2tJIrI" id="4vBwiiV6bol" role="jymVt" />
<node concept="3clFb_" id="4vBwiiV6eZ$" role="jymVt">
<property role="TrG5h" value="addListener" />
<property role="1EzhhJ" value="true" />
<node concept="37vLTG" id="4vBwiiV6jXt" role="3clF46">
<property role="TrG5h" value="listener" />
<node concept="3uibUv" id="4vBwiiV6k4F" role="1tU5fm">
<ref role="3uigEE" node="4vBwiiV6130" resolve="RuleApplicationSession.RuleApplicationSessionListener" />
</node>
</node>
<node concept="3cqZAl" id="4vBwiiV6eZA" role="3clF45" />
<node concept="3Tm1VV" id="4vBwiiV6eZB" role="1B3o_S" />
<node concept="3clFbS" id="4vBwiiV6eZC" role="3clF47" />
</node>
<node concept="2tJIrI" id="4vBwiiV6kcg" role="jymVt" />
<node concept="3clFb_" id="4vBwiiV6o8F" role="jymVt">
<property role="TrG5h" value="removeListener" />
<property role="1EzhhJ" value="true" />
<node concept="37vLTG" id="4vBwiiV6rYL" role="3clF46">
<property role="TrG5h" value="listener" />
<node concept="3uibUv" id="4vBwiiV6rYM" role="1tU5fm">
<ref role="3uigEE" node="4vBwiiV6130" resolve="RuleApplicationSession.RuleApplicationSessionListener" />
</node>
</node>
<node concept="3cqZAl" id="4vBwiiV6o8H" role="3clF45" />
<node concept="3Tm1VV" id="4vBwiiV6o8I" role="1B3o_S" />
<node concept="3clFbS" id="4vBwiiV6o8J" role="3clF47" />
</node>
<node concept="2tJIrI" id="1eKXYsjvBb4" role="jymVt" />
<node concept="3Tm1VV" id="18kNIl1vDQ0" role="1B3o_S" />
</node>

View File

@ -832,6 +832,22 @@
</node>
</node>
<node concept="2tJIrI" id="2RRx4MZTGJF" role="jymVt" />
<node concept="3clFb_" id="1ffsG7bUcCI" role="jymVt">
<property role="TrG5h" value="name" />
<node concept="17QB3L" id="1ffsG7bUcCJ" role="3clF45" />
<node concept="3Tm1VV" id="4vBwiiUWOlD" role="1B3o_S" />
<node concept="3clFbS" id="1ffsG7bUcCL" role="3clF47">
<node concept="3clFbF" id="1ffsG7bUcCM" role="3cqZAp">
<node concept="37vLTw" id="1ffsG7bUde9" role="3clFbG">
<ref role="3cqZAo" node="1ffsG7bUbIL" resolve="name" />
</node>
</node>
</node>
<node concept="2AHcQZ" id="4vBwiiUWOKv" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="4vBwiiUWRok" role="jymVt" />
<node concept="3clFb_" id="7XdbJdz3PF6" role="jymVt">
<property role="TrG5h" value="isExactMatch" />
<node concept="10P_77" id="7XdbJdz3PF7" role="3clF45" />
@ -1139,19 +1155,6 @@
</node>
<node concept="3Tm1VV" id="1ffsG7bUbCN" role="1B3o_S" />
<node concept="2tJIrI" id="1ffsG7bUbKy" role="jymVt" />
<node concept="3clFb_" id="1ffsG7bUcCI" role="jymVt">
<property role="TrG5h" value="name" />
<node concept="17QB3L" id="1ffsG7bUcCJ" role="3clF45" />
<node concept="3Tmbuc" id="2JQZWxFbt8r" role="1B3o_S" />
<node concept="3clFbS" id="1ffsG7bUcCL" role="3clF47">
<node concept="3clFbF" id="1ffsG7bUcCM" role="3cqZAp">
<node concept="37vLTw" id="1ffsG7bUde9" role="3clFbG">
<ref role="3cqZAo" node="1ffsG7bUbIL" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="1ffsG7bUqE8" role="jymVt" />
<node concept="312cEg" id="1ffsG7bUbIL" role="jymVt">
<property role="TrG5h" value="name" />
<node concept="3Tm6S6" id="1ffsG7bUbIM" role="1B3o_S" />
@ -1187,6 +1190,14 @@
<node concept="3HP615" id="1ffsG7bW_V4">
<property role="TrG5h" value="RuleTemplate" />
<node concept="2tJIrI" id="67SsWaEm4a8" role="jymVt" />
<node concept="3clFb_" id="4vBwiiUVL7_" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="name" />
<node concept="17QB3L" id="4vBwiiUVOVU" role="3clF45" />
<node concept="3Tm1VV" id="4vBwiiUVL7C" role="1B3o_S" />
<node concept="3clFbS" id="4vBwiiUVL7D" role="3clF47" />
</node>
<node concept="2tJIrI" id="4vBwiiUVL5S" role="jymVt" />
<node concept="3clFb_" id="1ffsG7bWxkw" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="applicableConcept" />