Introduce BodyBlock to contain multiple body clause lists. Support multi-line body. Migration.

This commit is contained in:
Fedor Isakov 2020-02-06 12:37:00 +01:00
parent 71d2d8a340
commit fa4537dbc3
7 changed files with 682 additions and 42 deletions

View File

@ -1166,6 +1166,30 @@
</node>
</node>
</node>
<node concept="3aamgX" id="6E2cNibq9aU" role="3acgRq">
<ref role="30HIoZ" to="wq2x:6E2cNiboHlA" resolve="BodyBlock" />
<node concept="1Koe21" id="6E2cNibqaCI" role="1lVwrX">
<node concept="9aQIb" id="6E2cNibqaCO" role="1Koe22">
<node concept="3clFbS" id="6E2cNibqaCP" role="9aQI4">
<node concept="raruj" id="6E2cNibqaCS" role="lGtFl" />
<node concept="2b32R4" id="6E2cNibqbdM" role="lGtFl">
<node concept="3JmXsc" id="6E2cNibqbdN" role="2P8S$">
<node concept="3clFbS" id="6E2cNibqbdO" role="2VODD2">
<node concept="3clFbF" id="6E2cNibqben" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibqbpW" role="3clFbG">
<node concept="30H73N" id="6E2cNibqbem" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibqbxf" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlB" resolve="body" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3aamgX" id="20Ay2VewH3T" role="3acgRq">
<property role="36QftV" value="true" />
<ref role="30HIoZ" to="wq2x:6p0DfM0a3d3" resolve="RuleComponent" />
@ -14372,6 +14396,110 @@
</node>
</node>
</node>
<node concept="3clFbH" id="6E2cNibq3pL" role="3cqZAp">
<node concept="1W57fq" id="6E2cNibq3pM" role="lGtFl">
<node concept="3IZrLx" id="6E2cNibq3pN" role="3IZSJc">
<node concept="3clFbS" id="6E2cNibq3pO" role="2VODD2">
<node concept="3clFbF" id="6E2cNibq3pP" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibq3pQ" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibq3pR" role="2Oq$k0">
<node concept="30H73N" id="6E2cNibq3pS" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibq5bc" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="3GX2aA" id="6E2cNibq3pU" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="29HgVG" id="6E2cNibq3pV" role="lGtFl">
<node concept="3NFfHV" id="6E2cNibq3pW" role="3NFExx">
<node concept="3clFbS" id="6E2cNibq3pX" role="2VODD2">
<node concept="3clFbF" id="6E2cNibq3pY" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibq3pZ" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibq3q0" role="2Oq$k0">
<node concept="30H73N" id="6E2cNibq3q1" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibq5o_" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="1uHKPH" id="6E2cNibq3q3" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="9aQIb" id="6E2cNibq5Ev" role="3cqZAp">
<node concept="3clFbS" id="6E2cNibq5Ew" role="9aQI4">
<node concept="3clFbF" id="6E2cNibq5Ex" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibq5Ey" role="3clFbG">
<node concept="37vLTw" id="6E2cNibq5Ez" role="2Oq$k0">
<ref role="3cqZAo" node="36tQV5AxhQ2" resolve="builder" />
</node>
<node concept="liA8E" id="6E2cNibq5E$" role="2OqNvi">
<ref role="37wK5l" to="i348:32fHqDf8Vx1" resolve="appendAlternation" />
</node>
</node>
</node>
<node concept="3clFbH" id="6E2cNibq5E_" role="3cqZAp">
<node concept="29HgVG" id="6E2cNibq5EA" role="lGtFl">
<node concept="3NFfHV" id="6E2cNibq5EB" role="3NFExx">
<node concept="3clFbS" id="6E2cNibq5EC" role="2VODD2">
<node concept="3clFbF" id="6E2cNibq5ED" role="3cqZAp">
<node concept="30H73N" id="6E2cNibq5EE" role="3clFbG" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1W57fq" id="6E2cNibq5EF" role="lGtFl">
<node concept="3IZrLx" id="6E2cNibq5EG" role="3IZSJc">
<node concept="3clFbS" id="6E2cNibq5EH" role="2VODD2">
<node concept="3clFbF" id="6E2cNibq5EI" role="3cqZAp">
<node concept="3eOSWO" id="6E2cNibq5EJ" role="3clFbG">
<node concept="3cmrfG" id="6E2cNibq5EK" role="3uHU7w">
<property role="3cmrfH" value="1" />
</node>
<node concept="2OqwBi" id="6E2cNibq5EL" role="3uHU7B">
<node concept="2OqwBi" id="6E2cNibq5EM" role="2Oq$k0">
<node concept="30H73N" id="6E2cNibq5EN" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibq6YZ" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="34oBXx" id="6E2cNibq5EP" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1WS0z7" id="6E2cNibq5EQ" role="lGtFl">
<node concept="3JmXsc" id="6E2cNibq5ER" role="3Jn$fo">
<node concept="3clFbS" id="6E2cNibq5ES" role="2VODD2">
<node concept="3clFbF" id="6E2cNibq5ET" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibq5EU" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibq5EV" role="2Oq$k0">
<node concept="30H73N" id="6E2cNibq5EW" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibq7kv" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="7r0gD" id="6E2cNibq5EY" role="2OqNvi">
<node concept="3cmrfG" id="6E2cNibq5EZ" role="7T0AP">
<property role="3cmrfH" value="1" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="36tQV5AxhRI" role="3cqZAp" />
<node concept="3clFbF" id="36tQV5AHZjj" role="3cqZAp">
<node concept="2OqwBi" id="36tQV5AI2aB" role="3clFbG">

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<language namespace="jetbrains.mps.lang.coderules" uuid="c4803b19-6d89-4a3b-bf82-390769514add" languageVersion="18" moduleVersion="0">
<language namespace="jetbrains.mps.lang.coderules" uuid="c4803b19-6d89-4a3b-bf82-390769514add" languageVersion="19" moduleVersion="0">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="languageModels" />

View File

@ -1054,28 +1054,60 @@
<node concept="3Tm6S6" id="7lt0LtPIz23" role="1B3o_S" />
<node concept="3clFbS" id="36tQV5ArDPT" role="3clF47">
<node concept="3clFbF" id="36tQV5ArDPU" role="3cqZAp">
<node concept="2OqwBi" id="36tQV5ArDPV" role="3clFbG">
<node concept="2OqwBi" id="36tQV5ArDPW" role="2Oq$k0">
<node concept="2OqwBi" id="36tQV5ArDPX" role="2Oq$k0">
<node concept="13iPFW" id="36tQV5ArDPY" role="2Oq$k0" />
<node concept="3Tsc0h" id="36tQV5ArDPZ" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsU" resolve="head" />
<node concept="2OqwBi" id="6E2cNibpO_S" role="3clFbG">
<node concept="2OqwBi" id="36tQV5ArDPV" role="2Oq$k0">
<node concept="2OqwBi" id="36tQV5ArDPW" role="2Oq$k0">
<node concept="2OqwBi" id="36tQV5ArDPX" role="2Oq$k0">
<node concept="13iPFW" id="36tQV5ArDPY" role="2Oq$k0" />
<node concept="3Tsc0h" id="36tQV5ArDPZ" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsU" resolve="head" />
</node>
</node>
<node concept="3QWeyG" id="36tQV5ArDQ0" role="2OqNvi">
<node concept="2OqwBi" id="36tQV5ArDQ1" role="576Qk">
<node concept="13iPFW" id="36tQV5ArDQ2" role="2Oq$k0" />
<node concept="3Tsc0h" id="36tQV5ArDQ3" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsV" resolve="guard" />
</node>
</node>
</node>
</node>
<node concept="3QWeyG" id="36tQV5ArDQ0" role="2OqNvi">
<node concept="2OqwBi" id="36tQV5ArDQ1" role="576Qk">
<node concept="13iPFW" id="36tQV5ArDQ2" role="2Oq$k0" />
<node concept="3Tsc0h" id="36tQV5ArDQ3" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsV" resolve="guard" />
<node concept="3QWeyG" id="36tQV5ArDQ4" role="2OqNvi">
<node concept="2OqwBi" id="36tQV5ArDQ5" role="576Qk">
<node concept="13iPFW" id="36tQV5ArDQ6" role="2Oq$k0" />
<node concept="3Tsc0h" id="36tQV5ArDQ7" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
</node>
</node>
<node concept="3QWeyG" id="36tQV5ArDQ4" role="2OqNvi">
<node concept="2OqwBi" id="36tQV5ArDQ5" role="576Qk">
<node concept="13iPFW" id="36tQV5ArDQ6" role="2Oq$k0" />
<node concept="3Tsc0h" id="36tQV5ArDQ7" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
<node concept="3QWeyG" id="6E2cNibpPpr" role="2OqNvi">
<node concept="2OqwBi" id="6E2cNibpSCS" role="576Qk">
<node concept="2OqwBi" id="6E2cNibpQVA" role="2Oq$k0">
<node concept="13iPFW" id="6E2cNibpQHt" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibpR9W" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="3goQfb" id="6E2cNibpUw6" role="2OqNvi">
<node concept="1bVj0M" id="6E2cNibpUw8" role="23t8la">
<node concept="3clFbS" id="6E2cNibpUw9" role="1bW5cS">
<node concept="3clFbF" id="6E2cNibpUF1" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibpV8e" role="3clFbG">
<node concept="37vLTw" id="6E2cNibpUF0" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibpUwa" resolve="it" />
</node>
<node concept="3Tsc0h" id="6E2cNibpVnr" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlB" resolve="body" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6E2cNibpUwa" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6E2cNibpUwb" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>

View File

@ -3866,6 +3866,10 @@
<node concept="ljvvj" id="7lt0LtPHSzm" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="VPxyj" id="6E2cNibqiB9" role="3F10Kt" />
<node concept="VPM3Z" id="6E2cNibqiAZ" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
</node>
<node concept="3F0ifn" id="4beNoh26dnM" role="3EZMnx">
@ -3988,6 +3992,7 @@
</node>
</node>
<node concept="3F0ifn" id="36tQV5AmMM3" role="2czzBI">
<property role="3F0ifm" value="s" />
<ref role="1k5W1q" to="tpen:hinfsDb" resolve="EmptyCell" />
<node concept="Vb9p2" id="36tQV5AmMM4" role="3F10Kt">
<property role="Vbekb" value="g1_k_vY/BOLD" />
@ -4025,6 +4030,9 @@
<node concept="3F0ifn" id="36tQV5AmMMd" role="3EZMnx">
<property role="3F0ifm" value="activate" />
<ref role="1k5W1q" to="qgy9:4aJUH_hW38r" resolve="RuleKeyword" />
<node concept="3nxI2P" id="6E2cNibusSy" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="VPxyj" id="36tQV5AmMMe" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
@ -4046,7 +4054,7 @@
<node concept="2OqwBi" id="b5g$pBtXT7" role="3clFbG">
<node concept="2OqwBi" id="b5g$pBtXT8" role="2Oq$k0">
<node concept="pncrf" id="b5g$pBtXT9" role="2Oq$k0" />
<node concept="3Tsc0h" id="b5g$pBtXTa" role="2OqNvi">
<node concept="3Tsc0h" id="6E2cNibut9U" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
@ -4070,7 +4078,7 @@
<node concept="2OqwBi" id="b5g$pBsROn" role="3clFbG">
<node concept="2OqwBi" id="b5g$pBsROo" role="2Oq$k0">
<node concept="pncrf" id="b5g$pBsROp" role="2Oq$k0" />
<node concept="3Tsc0h" id="b5g$pBtrpg" role="2OqNvi">
<node concept="3Tsc0h" id="6E2cNibKkzN" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
@ -4083,6 +4091,9 @@
<node concept="l2Vlx" id="36tQV5AmMMl" role="2czzBx" />
<node concept="tppnM" id="36tQV5AmMMm" role="sWeuL">
<ref role="1k5W1q" to="qgy9:4aJUH_hW38r" resolve="RuleKeyword" />
<node concept="3nxI2P" id="6E2cNibvc0o" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="pVoyu" id="1mdVbTRQpgf" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
@ -4104,6 +4115,109 @@
</node>
</node>
</node>
<node concept="pkWqt" id="6E2cNibKsrz" role="pqm2j">
<node concept="3clFbS" id="6E2cNibKsr$" role="2VODD2">
<node concept="3clFbF" id="6E2cNibKsuf" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibKuXc" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibKsG9" role="2Oq$k0">
<node concept="pncrf" id="6E2cNibKsue" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibKsLp" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
<node concept="3GX2aA" id="6E2cNibKxhD" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="3EZMnI" id="6E2cNibus_$" role="3EZMnx">
<node concept="VPM3Z" id="6E2cNibus__" role="3F10Kt" />
<node concept="pVoyu" id="6E2cNibus_A" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="3F0ifn" id="6E2cNibus_B" role="3EZMnx">
<property role="3F0ifm" value="activate" />
<ref role="1k5W1q" to="qgy9:4aJUH_hW38r" resolve="RuleKeyword" />
<node concept="VPxyj" id="6E2cNibus_C" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
<node concept="VPM3Z" id="6E2cNibus_D" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="lj46D" id="6E2cNibus_E" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="pVoyu" id="6E2cNibus_F" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="A1WHr" id="6E2cNibus_G" role="3vIgyS">
<ref role="2ZyFGn" to="wq2x:36tQV5AmIsB" resolve="ConstraintRule" />
</node>
<node concept="pkWqt" id="6E2cNibus_H" role="pqm2j">
<node concept="3clFbS" id="6E2cNibus_I" role="2VODD2">
<node concept="3clFbF" id="6E2cNibus_J" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibus_K" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibus_L" role="2Oq$k0">
<node concept="pncrf" id="6E2cNibus_M" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibus_N" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="3GX2aA" id="6E2cNibus_O" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="l2Vlx" id="6E2cNibus_P" role="2iSdaV" />
<node concept="3F2HdR" id="6E2cNibus_Q" role="3EZMnx">
<property role="2czwfO" value="else" />
<ref role="1NtTu8" to="wq2x:6E2cNiboHlF" resolve="body" />
<node concept="lj46D" id="6E2cNibus_R" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="pVoyu" id="6E2cNibus_S" role="3F10Kt">
<node concept="3nzxsE" id="6E2cNibus_T" role="3n$kyP">
<node concept="3clFbS" id="6E2cNibus_U" role="2VODD2">
<node concept="3clFbF" id="6E2cNibus_V" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibus_W" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibus_X" role="2Oq$k0">
<node concept="pncrf" id="6E2cNibus_Y" role="2Oq$k0" />
<node concept="3Tsc0h" id="6E2cNibus_Z" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="3GX2aA" id="6E2cNibusA0" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="l2Vlx" id="6E2cNibusA1" role="2czzBx" />
<node concept="tppnM" id="6E2cNibusA2" role="sWeuL">
<ref role="1k5W1q" to="qgy9:4aJUH_hW38r" resolve="RuleKeyword" />
<node concept="pVoyu" id="6E2cNibusA3" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="ljvvj" id="6E2cNibusA4" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="VPM3Z" id="6E2cNibusA5" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="VPxyj" id="6E2cNibusA6" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
</node>
<node concept="3F0ifn" id="6E2cNibusA7" role="2czzBI">
<property role="3F0ifm" value="activate nothing" />
<ref role="1k5W1q" to="tpen:hinfsDb" resolve="EmptyCell" />
<node concept="Vb9p2" id="6E2cNibusA8" role="3F10Kt">
<property role="Vbekb" value="g1_k_vY/BOLD" />
</node>
</node>
</node>
</node>
<node concept="1Bsynf" id="4TI9yUdfYyM" role="3F10Kt">
<property role="VOm3f" value="true" />
@ -5586,5 +5700,32 @@
</node>
</node>
</node>
<node concept="24kQdi" id="6E2cNibqcv$">
<property role="3GE5qa" value="rule.component" />
<ref role="1XX52x" to="wq2x:6E2cNiboHlA" resolve="BodyBlock" />
<node concept="3EZMnI" id="6E2cNibqdSF" role="2wV5jI">
<node concept="3F2HdR" id="6E2cNibqdSM" role="3EZMnx">
<property role="2czwfO" value="," />
<ref role="1NtTu8" to="wq2x:6E2cNiboHlB" resolve="body" />
<node concept="l2Vlx" id="6E2cNibqdSO" role="2czzBx" />
<node concept="tppnM" id="6E2cNibqdSW" role="sWeuL">
<node concept="11L4FC" id="6E2cNibqiBo" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="ljvvj" id="6E2cNibqivp" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="VPxyj" id="6E2cNibqiv$" role="3F10Kt" />
<node concept="VPM3Z" id="6E2cNibqivG" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="6E2cNicbkYD" role="2czzBI">
<property role="ilYzB" value="&lt;no body&gt;" />
</node>
</node>
<node concept="l2Vlx" id="6E2cNibqdSI" role="2iSdaV" />
</node>
</node>
</model>

View File

@ -253,6 +253,9 @@
<concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
<child id="1204796294226" name="closure" index="23t8la" />
</concept>
<concept id="1176906603202" name="jetbrains.mps.baseLanguage.collections.structure.BinaryOperation" flags="nn" index="56pJg">
<child id="1176906787974" name="rightExpression" index="576Qk" />
</concept>
<concept id="540871147943773365" name="jetbrains.mps.baseLanguage.collections.structure.SingleArgumentSequenceOperation" flags="nn" index="25WWJ4">
<child id="540871147943773366" name="argument" index="25WWJ7" />
</concept>
@ -320,6 +323,7 @@
</concept>
<concept id="1176501494711" name="jetbrains.mps.baseLanguage.collections.structure.IsNotEmptyOperation" flags="nn" index="3GX2aA" />
<concept id="1172254888721" name="jetbrains.mps.baseLanguage.collections.structure.ContainsOperation" flags="nn" index="3JPx81" />
<concept id="1180964022718" name="jetbrains.mps.baseLanguage.collections.structure.ConcatOperation" flags="nn" index="3QWeyG" />
</language>
</registry>
<node concept="312cEu" id="2SkPIT_klnG">
@ -697,12 +701,48 @@
</node>
</node>
<node concept="2OqwBi" id="1RMe_qTchUU" role="2GsD0m">
<node concept="2OqwBi" id="1RMe_qTcfTT" role="2Oq$k0">
<node concept="37vLTw" id="1RMe_qTcfec" role="2Oq$k0">
<ref role="3cqZAo" node="5VJ3UjC4JLn" resolve="node" />
</node>
<node concept="3Tsc0h" id="1RMe_qTch5M" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
<node concept="1eOMI4" id="6E2cNibpBSF" role="2Oq$k0">
<node concept="2OqwBi" id="6E2cNibpEwf" role="1eOMHV">
<node concept="2OqwBi" id="1RMe_qTcfTT" role="2Oq$k0">
<node concept="37vLTw" id="1RMe_qTcfec" role="2Oq$k0">
<ref role="3cqZAo" node="5VJ3UjC4JLn" resolve="node" />
</node>
<node concept="3Tsc0h" id="1RMe_qTch5M" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
<node concept="3QWeyG" id="6E2cNibpHbH" role="2OqNvi">
<node concept="2OqwBi" id="6E2cNibpKfT" role="576Qk">
<node concept="2OqwBi" id="6E2cNibpHAZ" role="2Oq$k0">
<node concept="37vLTw" id="6E2cNibpHkV" role="2Oq$k0">
<ref role="3cqZAo" node="5VJ3UjC4JLn" resolve="node" />
</node>
<node concept="3Tsc0h" id="6E2cNibpIA7" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="3goQfb" id="6E2cNibpMuL" role="2OqNvi">
<node concept="1bVj0M" id="6E2cNibpMuN" role="23t8la">
<node concept="3clFbS" id="6E2cNibpMuO" role="1bW5cS">
<node concept="3clFbF" id="6E2cNibpMIp" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibpN3y" role="3clFbG">
<node concept="37vLTw" id="6E2cNibpMIo" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibpMuP" resolve="it" />
</node>
<node concept="3Tsc0h" id="6E2cNibpNqQ" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlB" resolve="body" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6E2cNibpMuP" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6E2cNibpMuQ" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3goQfb" id="1RMe_qTco7J" role="2OqNvi">
@ -3175,12 +3215,46 @@
</node>
<node concept="1rXfSq" id="7ebSZkq0$6d" role="33vP2m">
<ref role="37wK5l" node="7ebSZkq0h1E" resolve="getCtrDecls" />
<node concept="2OqwBi" id="7ebSZkq0$6e" role="37wK5m">
<node concept="2GrUjf" id="7ebSZkq0$6f" role="2Oq$k0">
<ref role="2Gs0qQ" node="1$LYeHx$LBc" resolve="rule" />
<node concept="2OqwBi" id="6E2cNibp1Xw" role="37wK5m">
<node concept="2OqwBi" id="7ebSZkq0$6e" role="2Oq$k0">
<node concept="2GrUjf" id="7ebSZkq0$6f" role="2Oq$k0">
<ref role="2Gs0qQ" node="1$LYeHx$LBc" resolve="rule" />
</node>
<node concept="3Tsc0h" id="7ebSZkq0AuN" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
<node concept="3Tsc0h" id="7ebSZkq0AuN" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
<node concept="3QWeyG" id="6E2cNiboMCm" role="2OqNvi">
<node concept="2OqwBi" id="6E2cNiboSQK" role="576Qk">
<node concept="2OqwBi" id="6E2cNiboPQI" role="2Oq$k0">
<node concept="2GrUjf" id="6E2cNiboPtF" role="2Oq$k0">
<ref role="2Gs0qQ" node="1$LYeHx$LBc" resolve="rule" />
</node>
<node concept="3Tsc0h" id="6E2cNiboQvb" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="3goQfb" id="6E2cNiboUov" role="2OqNvi">
<node concept="1bVj0M" id="6E2cNiboUox" role="23t8la">
<node concept="3clFbS" id="6E2cNiboUoy" role="1bW5cS">
<node concept="3clFbF" id="6E2cNiboVpE" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNiboWrN" role="3clFbG">
<node concept="37vLTw" id="6E2cNiboVpD" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNiboUoz" resolve="it" />
</node>
<node concept="3Tsc0h" id="6E2cNiboXem" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlB" resolve="body" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6E2cNiboUoz" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6E2cNiboUo$" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -3710,12 +3784,48 @@
</node>
</node>
<node concept="2OqwBi" id="2Ap6smyTrK" role="2GsD0m">
<node concept="2OqwBi" id="6_dHUh85eUa" role="2Oq$k0">
<node concept="2GrUjf" id="1$LYeHxA6td" role="2Oq$k0">
<ref role="2Gs0qQ" node="1$LYeHxA4Px" resolve="rule" />
</node>
<node concept="3Tsc0h" id="1$LYeHxA6NT" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
<node concept="1eOMI4" id="6E2cNibp5yp" role="2Oq$k0">
<node concept="2OqwBi" id="6E2cNibp7FW" role="1eOMHV">
<node concept="2OqwBi" id="6_dHUh85eUa" role="2Oq$k0">
<node concept="2GrUjf" id="1$LYeHxA6td" role="2Oq$k0">
<ref role="2Gs0qQ" node="1$LYeHxA4Px" resolve="rule" />
</node>
<node concept="3Tsc0h" id="1$LYeHxA6NT" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
<node concept="3QWeyG" id="6E2cNibp9MC" role="2OqNvi">
<node concept="2OqwBi" id="6E2cNibpcIL" role="576Qk">
<node concept="2OqwBi" id="6E2cNibpag4" role="2Oq$k0">
<node concept="2GrUjf" id="6E2cNibp9YV" role="2Oq$k0">
<ref role="2Gs0qQ" node="1$LYeHxA4Px" resolve="rule" />
</node>
<node concept="3Tsc0h" id="6E2cNibpaYD" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="3goQfb" id="6E2cNibpewx" role="2OqNvi">
<node concept="1bVj0M" id="6E2cNibpewz" role="23t8la">
<node concept="3clFbS" id="6E2cNibpew$" role="1bW5cS">
<node concept="3clFbF" id="6E2cNibpeNt" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibpfxE" role="3clFbG">
<node concept="37vLTw" id="6E2cNibpeNs" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibpew_" resolve="it" />
</node>
<node concept="3Tsc0h" id="6E2cNibpfS3" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlB" resolve="body" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6E2cNibpew_" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6E2cNibpewA" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3goQfb" id="2Ap6smyWXr" role="2OqNvi">
@ -5518,12 +5628,48 @@
</node>
<node concept="2OqwBi" id="2NnDL4GakDs" role="33vP2m">
<node concept="2OqwBi" id="2NnDL4GafR7" role="2Oq$k0">
<node concept="2OqwBi" id="2NnDL4GadFf" role="2Oq$k0">
<node concept="37vLTw" id="2NnDL4GadwC" role="2Oq$k0">
<ref role="3cqZAo" node="2NnDL4G9WvN" resolve="rule" />
</node>
<node concept="3Tsc0h" id="2NnDL4GadPR" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
<node concept="1eOMI4" id="6E2cNibphqm" role="2Oq$k0">
<node concept="2OqwBi" id="6E2cNibpk1K" role="1eOMHV">
<node concept="2OqwBi" id="2NnDL4GadFf" role="2Oq$k0">
<node concept="37vLTw" id="2NnDL4GadwC" role="2Oq$k0">
<ref role="3cqZAo" node="2NnDL4G9WvN" resolve="rule" />
</node>
<node concept="3Tsc0h" id="2NnDL4GadPR" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
<node concept="3QWeyG" id="6E2cNibpm9X" role="2OqNvi">
<node concept="2OqwBi" id="6E2cNibpqg2" role="576Qk">
<node concept="2OqwBi" id="6E2cNibpnmf" role="2Oq$k0">
<node concept="37vLTw" id="6E2cNibpmHV" role="2Oq$k0">
<ref role="3cqZAo" node="2NnDL4G9WvN" resolve="rule" />
</node>
<node concept="3Tsc0h" id="6E2cNibpo9Y" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="3goQfb" id="6E2cNibpsoY" role="2OqNvi">
<node concept="1bVj0M" id="6E2cNibpsp0" role="23t8la">
<node concept="3clFbS" id="6E2cNibpsp1" role="1bW5cS">
<node concept="3clFbF" id="6E2cNibptaX" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibptRg" role="3clFbG">
<node concept="37vLTw" id="6E2cNibptaW" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibpsp2" resolve="it" />
</node>
<node concept="3Tsc0h" id="6E2cNibpu_C" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlB" resolve="body" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6E2cNibpsp2" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6E2cNibpsp3" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3goQfb" id="2NnDL4Gaivw" role="2OqNvi">

View File

@ -159,6 +159,7 @@
<child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
<child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
</concept>
<concept id="1139184414036" name="jetbrains.mps.lang.smodel.structure.LinkList_AddNewChildOperation" flags="nn" index="WFELt" />
<concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
<child id="1177027386292" name="conceptArgument" index="cj9EA" />
</concept>
@ -1834,5 +1835,176 @@
<ref role="3uigEE" to="slm6:5TUCQr2ybBO" resolve="HasMigrationScriptReference" />
</node>
</node>
<node concept="3SyAh_" id="6E2cNibLTGn">
<property role="qMTe8" value="18" />
<property role="TrG5h" value="MoveBodyToBodyBlock" />
<node concept="3Tm1VV" id="6E2cNibLTGo" role="1B3o_S" />
<node concept="3tTeZs" id="6E2cNibLTGp" role="jymVt">
<property role="3tTeZt" value="&lt;no execute after&gt;" />
<ref role="3tTeZr" to="slm6:7ay_HjIMt1a" resolve="execute after" />
</node>
<node concept="3tTeZs" id="6E2cNibLTGq" role="jymVt">
<property role="3tTeZt" value="&lt;no required data&gt;" />
<ref role="3tTeZr" to="slm6:5TUCQr2FPTh" resolve="requires annotation data" />
</node>
<node concept="3tTeZs" id="6E2cNibLTGr" role="jymVt">
<property role="3tTeZt" value="&lt;no produced data&gt;" />
<ref role="3tTeZr" to="slm6:5TUCQr2C271" resolve="produces annotation data" />
</node>
<node concept="2tJIrI" id="6E2cNibLTGs" role="jymVt" />
<node concept="3tYpMH" id="6E2cNibLTGt" role="jymVt">
<property role="TrG5h" value="isRerunnable" />
<property role="3tYpME" value="true" />
<ref role="25KYV2" to="slm6:1JWcQ2VeWIs" resolve="isRerunnable" />
<node concept="3Tm1VV" id="6E2cNibLTGu" role="1B3o_S" />
<node concept="10P_77" id="6E2cNibLTGv" role="1tU5fm" />
</node>
<node concept="3tYpXE" id="6E2cNibLVoS" role="jymVt">
<property role="TrG5h" value="description" />
<property role="3tYpXF" value="Move clause list from Body to BodyBlock" />
<ref role="25KYV2" to="slm6:1_lSsE3RFpE" resolve="description" />
<node concept="3Tm1VV" id="6E2cNibLVoU" role="1B3o_S" />
<node concept="17QB3L" id="6E2cNibLVoV" role="1tU5fm" />
</node>
<node concept="q3mfD" id="6E2cNibLTGx" role="jymVt">
<property role="TrG5h" value="execute" />
<ref role="2VtyIY" to="slm6:4ubqdNOF9cA" resolve="execute" />
<node concept="3Tm1VV" id="6E2cNibLTGz" role="1B3o_S" />
<node concept="3clFbS" id="6E2cNibLTG_" role="3clF47">
<node concept="L3pyB" id="6E2cNibLVtd" role="3cqZAp">
<node concept="3clFbS" id="6E2cNibLVte" role="L3pyw">
<node concept="3clFbF" id="6E2cNibLVtf" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibLVtg" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibLVth" role="2Oq$k0">
<node concept="qVDSY" id="6E2cNibLVti" role="2Oq$k0">
<node concept="chp4Y" id="6E2cNibLVtj" role="qVDSX">
<ref role="cht4Q" to="wq2x:36tQV5AmIsB" resolve="ConstraintRule" />
</node>
<node concept="1dO9Bo" id="6E2cNibLVtk" role="1dOa5D">
<node concept="3Z_Q4n" id="6E2cNibLVtl" role="1dp2q7" />
</node>
</node>
<node concept="3zZkjj" id="6E2cNibLVtm" role="2OqNvi">
<node concept="1bVj0M" id="6E2cNibLVtn" role="23t8la">
<node concept="3clFbS" id="6E2cNibLVto" role="1bW5cS">
<node concept="3clFbF" id="6E2cNibLVtp" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibLVtq" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibLVtr" role="2Oq$k0">
<node concept="37vLTw" id="6E2cNibLVts" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibLVtv" resolve="cr" />
</node>
<node concept="3Tsc0h" id="6E2cNibLYBV" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
<node concept="3GX2aA" id="6E2cNibLVtu" role="2OqNvi" />
</node>
</node>
</node>
<node concept="Rh6nW" id="6E2cNibLVtv" role="1bW2Oz">
<property role="TrG5h" value="cr" />
<node concept="2jxLKc" id="6E2cNibLVtw" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="2es0OD" id="6E2cNibLVtx" role="2OqNvi">
<node concept="1bVj0M" id="6E2cNibLVty" role="23t8la">
<node concept="3clFbS" id="6E2cNibLVtz" role="1bW5cS">
<node concept="1DcWWT" id="6E2cNibM6aM" role="3cqZAp">
<node concept="3clFbS" id="6E2cNibM6aP" role="2LFqv$">
<node concept="3cpWs8" id="6E2cNibMyKl" role="3cqZAp">
<node concept="3cpWsn" id="6E2cNibMyKm" role="3cpWs9">
<property role="TrG5h" value="bb" />
<node concept="3Tqbb2" id="6E2cNibMywZ" role="1tU5fm">
<ref role="ehGHo" to="wq2x:6E2cNiboHlA" resolve="BodyBlock" />
</node>
<node concept="2OqwBi" id="6E2cNibMyKn" role="33vP2m">
<node concept="2OqwBi" id="6E2cNibMyKo" role="2Oq$k0">
<node concept="37vLTw" id="6E2cNibMyKp" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibLVul" resolve="cr" />
</node>
<node concept="3Tsc0h" id="6E2cNibMyKq" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlF" resolve="body" />
</node>
</node>
<node concept="WFELt" id="6E2cNicc9AS" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="6E2cNibMhfV" role="3cqZAp">
<node concept="2OqwBi" id="6E2cNibMKoS" role="3clFbG">
<node concept="2OqwBi" id="6E2cNibMCdU" role="2Oq$k0">
<node concept="37vLTw" id="6E2cNibMyKs" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibMyKm" resolve="bb" />
</node>
<node concept="3Tsc0h" id="6E2cNibMFsZ" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6E2cNiboHlB" resolve="body" />
</node>
</node>
<node concept="TSZUe" id="6E2cNibMZ0n" role="2OqNvi">
<node concept="2OqwBi" id="6E2cNibNe6V" role="25WWJ7">
<node concept="37vLTw" id="6E2cNibNbu1" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibM6aQ" resolve="b" />
</node>
<node concept="3YRAZt" id="6E2cNibNgH3" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="6E2cNibM6aQ" role="1Duv9x">
<property role="TrG5h" value="b" />
<node concept="3Tqbb2" id="6E2cNibM96Y" role="1tU5fm">
<ref role="ehGHo" to="wq2x:6p0DfM0a3TO" resolve="Body" />
</node>
</node>
<node concept="2OqwBi" id="6E2cNibN3Tw" role="1DdaDG">
<node concept="2OqwBi" id="6E2cNibM6aV" role="2Oq$k0">
<node concept="37vLTw" id="6E2cNibM6aW" role="2Oq$k0">
<ref role="3cqZAo" node="6E2cNibLVul" resolve="cr" />
</node>
<node concept="3Tsc0h" id="6E2cNibM6aX" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:36tQV5AmIsW" resolve="body" />
</node>
</node>
<node concept="ANE8D" id="6E2cNibN91t" role="2OqNvi" />
</node>
</node>
</node>
<node concept="Rh6nW" id="6E2cNibLVul" role="1bW2Oz">
<property role="TrG5h" value="cr" />
<node concept="2jxLKc" id="6E2cNibLVum" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="6E2cNibLVun" role="L3pyr">
<ref role="3cqZAo" node="6E2cNibLTGB" resolve="m" />
</node>
</node>
</node>
<node concept="ffn8J" id="6E2cNibLTGB" role="3clF46">
<property role="TrG5h" value="m" />
<ref role="ffrpq" to="slm6:7fCCGqboj9J" resolve="m" />
<node concept="3uibUv" id="6E2cNibLTGA" role="1tU5fm">
<ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
</node>
</node>
<node concept="q3mfm" id="6E2cNibLTGC" role="3clF45">
<ref role="q3mfh" to="slm6:4F5w8gPXEEe" />
<ref role="1QQUv3" node="6E2cNibLTGx" resolve="execute" />
</node>
</node>
<node concept="3tTeZs" id="6E2cNibLTGD" role="jymVt">
<property role="3tTeZt" value="&lt;no result checking&gt;" />
<ref role="3tTeZr" to="slm6:1JWcQ2VeXpD" resolve="check" />
</node>
<node concept="3uibUv" id="6E2cNibLTGE" role="1zkMxy">
<ref role="3uigEE" to="slm6:5TUCQr2ybBO" resolve="HasMigrationScriptReference" />
</node>
</node>
</model>

View File

@ -1057,6 +1057,14 @@
<property role="20lbJX" value="fLJekj5/_0__n" />
<property role="IQ2ns" value="3575255234174969660" />
<ref role="20lvS9" node="6p0DfM0a3TO" resolve="Body" />
<node concept="asaX9" id="6E2cNiboHlD" role="lGtFl" />
</node>
<node concept="1TJgyj" id="6E2cNiboHlF" role="1TKVEi">
<property role="IQ2ns" value="7674753015762572651" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="body" />
<property role="20lbJX" value="fLJekj5/_0__n" />
<ref role="20lvS9" node="6E2cNiboHlA" resolve="BodyBlock" />
</node>
<node concept="PrWs8" id="36tQV5Ax0RU" role="PzmwI">
<ref role="PrY4T" node="7IysFeBd3kI" resolve="ApplicationSessionParticipant" />
@ -1412,5 +1420,18 @@
<ref role="20lvS9" to="5j4j:7E86$tKsl45" resolve="LogicalItem" />
</node>
</node>
<node concept="1TIwiD" id="6E2cNiboHlA">
<property role="EcuMT" value="7674753015762572646" />
<property role="3GE5qa" value="rule.component" />
<property role="TrG5h" value="BodyBlock" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="1TJgyj" id="6E2cNiboHlB" role="1TKVEi">
<property role="IQ2ns" value="7674753015762572647" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="body" />
<property role="20lbJX" value="fLJekj6/_1__n" />
<ref role="20lvS9" node="6p0DfM0a3TO" resolve="Body" />
</node>
</node>
</model>