Intentions and methods to facilitate working with macros

This commit is contained in:
Fedor Isakov 2023-10-12 12:10:36 +02:00
parent 5fafd1b0dc
commit de9fd05c45
4 changed files with 424 additions and 164 deletions

View File

@ -127,6 +127,9 @@
<child id="1206060619838" name="condition" index="3eO9$A" />
<child id="1206060644605" name="statementList" index="3eOfB_" />
</concept>
<concept id="1079359253375" name="jetbrains.mps.baseLanguage.structure.ParenthesizedExpression" flags="nn" index="1eOMI4">
<child id="1079359253376" name="expression" index="1eOMHV" />
</concept>
<concept id="1081506762703" name="jetbrains.mps.baseLanguage.structure.GreaterThanExpression" flags="nn" index="3eOSWO" />
<concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
<child id="1081516765348" name="expression" index="3fr31v" />
@ -148,6 +151,7 @@
<child id="1163668922816" name="ifTrue" index="3K4E3e" />
<child id="1163668934364" name="ifFalse" index="3K4GZi" />
</concept>
<concept id="1082113931046" name="jetbrains.mps.baseLanguage.structure.ContinueStatement" flags="nn" index="3N13vt" />
<concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
<concept id="1146644623116" name="jetbrains.mps.baseLanguage.structure.PrivateVisibility" flags="nn" index="3Tm6S6" />
<concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
@ -193,6 +197,7 @@
<child id="1145567471833" name="createdType" index="2T96Bj" />
</concept>
<concept id="1171407110247" name="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" flags="nn" index="2Xjw5R" />
<concept id="1227264722563" name="jetbrains.mps.lang.smodel.structure.EqualsStructurallyExpression" flags="nn" index="2YFouu" />
<concept id="2644386474301421077" name="jetbrains.mps.lang.smodel.structure.LinkIdRefExpression" flags="nn" index="359W_D">
<reference id="2644386474301421078" name="conceptDeclaration" index="359W_E" />
<reference id="2644386474301421079" name="linkDeclaration" index="359W_F" />
@ -253,6 +258,9 @@
</concept>
<concept id="1151702311717" name="jetbrains.mps.baseLanguage.collections.structure.ToListOperation" flags="nn" index="ANE8D" />
<concept id="3358009230509553641" name="jetbrains.mps.baseLanguage.collections.structure.LinkedListType" flags="in" index="2BANLN" />
<concept id="1235573135402" name="jetbrains.mps.baseLanguage.collections.structure.SingletonSequenceCreator" flags="nn" index="2HTt$P">
<child id="1235573187520" name="singletonValue" index="2HTEbv" />
</concept>
<concept id="1237721394592" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerCreator" flags="nn" index="HWqM0">
<child id="1237721435807" name="elementType" index="HW$YZ" />
</concept>
@ -263,7 +271,19 @@
<concept id="1162935959151" name="jetbrains.mps.baseLanguage.collections.structure.GetSizeOperation" flags="nn" index="34oBXx" />
<concept id="1201792049884" name="jetbrains.mps.baseLanguage.collections.structure.TranslateOperation" flags="nn" index="3goQfb" />
<concept id="1202120902084" name="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" flags="nn" index="3zZkjj" />
<concept id="1202128969694" name="jetbrains.mps.baseLanguage.collections.structure.SelectOperation" flags="nn" index="3$u5V9" />
<concept id="9042586985346099698" name="jetbrains.mps.baseLanguage.collections.structure.MultiForEachStatement" flags="nn" index="1_o_46">
<child id="9042586985346099734" name="forEach" index="1_o_by" />
</concept>
<concept id="9042586985346099733" name="jetbrains.mps.baseLanguage.collections.structure.MultiForEachPair" flags="ng" index="1_o_bx">
<child id="9042586985346099778" name="variable" index="1_o_aQ" />
<child id="9042586985346099735" name="input" index="1_o_bz" />
</concept>
<concept id="9042586985346099736" name="jetbrains.mps.baseLanguage.collections.structure.MultiForEachVariable" flags="ng" index="1_o_bG" />
<concept id="1172254888721" name="jetbrains.mps.baseLanguage.collections.structure.ContainsOperation" flags="nn" index="3JPx81" />
<concept id="8293956702609956630" name="jetbrains.mps.baseLanguage.collections.structure.MultiForEachVariableReference" flags="nn" index="3M$PaV">
<reference id="8293956702609966325" name="variable" index="3M$S_o" />
</concept>
<concept id="1180964022718" name="jetbrains.mps.baseLanguage.collections.structure.ConcatOperation" flags="nn" index="3QWeyG" />
</language>
</registry>
@ -1716,6 +1736,335 @@
</node>
</node>
</node>
<node concept="13i0hz" id="3swcsd3qHV7" role="13h7CS">
<property role="TrG5h" value="isConsistentParameters" />
<node concept="3Tm1VV" id="3swcsd3qHV8" role="1B3o_S" />
<node concept="10P_77" id="3swcsd3qIbk" role="3clF45" />
<node concept="3clFbS" id="3swcsd3qHVa" role="3clF47">
<node concept="3cpWs8" id="3swcsd1zTOD" role="3cqZAp">
<node concept="3cpWsn" id="3swcsd1zTOE" role="3cpWs9">
<property role="TrG5h" value="decls" />
<node concept="2I9FWS" id="3swcsd1zTM2" role="1tU5fm">
<ref role="2I9WkF" to="wq2x:5itBwM6wvc4" resolve="ExpandMacroParameterDeclaration" />
</node>
<node concept="2OqwBi" id="3swcsd1zTOF" role="33vP2m">
<node concept="2OqwBi" id="3swcsd1zTOG" role="2Oq$k0">
<node concept="3TrEf2" id="3swcsd1zTOI" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM6gb4P" resolve="prototype" />
</node>
<node concept="13iPFW" id="3swcsd3qIDP" role="2Oq$k0" />
</node>
<node concept="3Tsc0h" id="3swcsd1zTOJ" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM6wU6s" resolve="parameter" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="3swcsd1$5vb" role="3cqZAp">
<node concept="3cpWsn" id="3swcsd1$5vc" role="3cpWs9">
<property role="TrG5h" value="usages" />
<node concept="_YKpA" id="3swcsd1$5u0" role="1tU5fm">
<node concept="3Tqbb2" id="3swcsd1$5u3" role="_ZDj9">
<ref role="ehGHo" to="wq2x:5itBwM6wvc4" resolve="ExpandMacroParameterDeclaration" />
</node>
</node>
<node concept="2OqwBi" id="3swcsd1$5vd" role="33vP2m">
<node concept="2OqwBi" id="3swcsd1$5ve" role="2Oq$k0">
<node concept="2OqwBi" id="3swcsd1$5vf" role="2Oq$k0">
<node concept="3Tsc0h" id="3swcsd1$5vh" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:3swcsd18ZGX" resolve="parameter" />
</node>
<node concept="13iPFW" id="3swcsd3qILU" role="2Oq$k0" />
</node>
<node concept="3$u5V9" id="3swcsd1$5vi" role="2OqNvi">
<node concept="1bVj0M" id="3swcsd1$5vj" role="23t8la">
<node concept="3clFbS" id="3swcsd1$5vk" role="1bW5cS">
<node concept="3clFbF" id="3swcsd1$5vl" role="3cqZAp">
<node concept="2OqwBi" id="3swcsd1$5vm" role="3clFbG">
<node concept="37vLTw" id="3swcsd1$5vn" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd1$5vp" resolve="it" />
</node>
<node concept="3TrEf2" id="3swcsd1$5vo" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:3swcsd17JEn" resolve="declaration" />
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="3swcsd1$5vp" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="3swcsd1$5vq" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="ANE8D" id="3swcsd1$5vr" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="3swcsd3qIUy" role="3cqZAp">
<node concept="17R0WA" id="3swcsd3qN$Y" role="3clFbG">
<node concept="37vLTw" id="3swcsd3qOw5" role="3uHU7w">
<ref role="3cqZAo" node="3swcsd1$5vc" resolve="usages" />
</node>
<node concept="37vLTw" id="3swcsd3qIUw" role="3uHU7B">
<ref role="3cqZAo" node="3swcsd1zTOE" resolve="decls" />
</node>
</node>
</node>
</node>
</node>
<node concept="13i0hz" id="3swcsd3qO$G" role="13h7CS">
<property role="TrG5h" value="isConsistentLogicals" />
<node concept="3Tm1VV" id="3swcsd3qO$H" role="1B3o_S" />
<node concept="10P_77" id="3swcsd3qPAf" role="3clF45" />
<node concept="3clFbS" id="3swcsd3qO$J" role="3clF47">
<node concept="3cpWs8" id="3swcsd3royH" role="3cqZAp">
<node concept="3cpWsn" id="3swcsd3royI" role="3cpWs9">
<property role="TrG5h" value="decls" />
<node concept="_YKpA" id="3swcsd3roww" role="1tU5fm">
<node concept="3Tqbb2" id="3swcsd3rowz" role="_ZDj9" />
</node>
<node concept="2OqwBi" id="3swcsd3royJ" role="33vP2m">
<property role="hSjvv" value="true" />
<node concept="2OqwBi" id="3swcsd3royK" role="2Oq$k0">
<property role="hSjvv" value="true" />
<node concept="2OqwBi" id="3swcsd3royL" role="2Oq$k0">
<node concept="2OqwBi" id="3swcsd3royM" role="2Oq$k0">
<node concept="13iPFW" id="3swcsd3royN" role="2Oq$k0" />
<node concept="3TrEf2" id="3swcsd3royO" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM6gb4P" resolve="prototype" />
</node>
</node>
<node concept="3Tsc0h" id="3swcsd3royP" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM6iJYb" resolve="logical" />
</node>
</node>
<node concept="3goQfb" id="3swcsd3royQ" role="2OqNvi">
<node concept="1bVj0M" id="3swcsd3royR" role="23t8la">
<node concept="3clFbS" id="3swcsd3royS" role="1bW5cS">
<node concept="3clFbF" id="3swcsd3royT" role="3cqZAp">
<node concept="2OqwBi" id="3swcsd3royU" role="3clFbG">
<property role="hSjvv" value="true" />
<node concept="2ShNRf" id="3swcsd3royV" role="2Oq$k0">
<node concept="2HTt$P" id="3swcsd3royW" role="2ShVmc">
<node concept="2OqwBi" id="3swcsd3royX" role="2HTEbv">
<node concept="37vLTw" id="3swcsd3royY" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd3roz4" resolve="log" />
</node>
<node concept="3TrEf2" id="3swcsd3royZ" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:5zfvpQ72gqq" resolve="dataType" />
</node>
</node>
</node>
</node>
<node concept="3QWeyG" id="3swcsd3roz0" role="2OqNvi">
<node concept="2OqwBi" id="3swcsd3sA13" role="576Qk">
<node concept="2OqwBi" id="3swcsd3roz1" role="2Oq$k0">
<node concept="37vLTw" id="3swcsd3roz2" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd3roz4" resolve="log" />
</node>
<node concept="3Tsc0h" id="3swcsd3roz3" role="2OqNvi">
<ref role="3TtcxE" to="5j4j:2E5lcNn8k3O" resolve="declaration" />
</node>
</node>
<node concept="3$u5V9" id="3swcsd3sDN8" role="2OqNvi">
<node concept="1bVj0M" id="3swcsd3sDNa" role="23t8la">
<node concept="3clFbS" id="3swcsd3sDNb" role="1bW5cS">
<node concept="3clFbF" id="3swcsd3sEHx" role="3cqZAp">
<node concept="2OqwBi" id="3swcsd3sFhn" role="3clFbG">
<node concept="37vLTw" id="3swcsd3sEHw" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd3sDNc" resolve="d" />
</node>
<node concept="3TrEf2" id="3swcsd3sH0J" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:5f6wxQ3ychO" resolve="cardinalityExpr" />
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="3swcsd3sDNc" role="1bW2Oz">
<property role="TrG5h" value="d" />
<node concept="2jxLKc" id="3swcsd3sDNd" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="3swcsd3roz4" role="1bW2Oz">
<property role="TrG5h" value="log" />
<node concept="2jxLKc" id="3swcsd3roz5" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="ANE8D" id="3swcsd3roz6" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbH" id="3swcsd3sKT8" role="3cqZAp" />
<node concept="3cpWs8" id="3swcsd3r$n$" role="3cqZAp">
<node concept="3cpWsn" id="3swcsd3r$n_" role="3cpWs9">
<property role="TrG5h" value="usages" />
<node concept="_YKpA" id="3swcsd3r$l8" role="1tU5fm">
<node concept="3Tqbb2" id="3swcsd3r$lb" role="_ZDj9" />
</node>
<node concept="2OqwBi" id="3swcsd3r$nA" role="33vP2m">
<property role="hSjvv" value="true" />
<node concept="2OqwBi" id="3swcsd3r$nB" role="2Oq$k0">
<property role="hSjvv" value="true" />
<node concept="2OqwBi" id="3swcsd3r$nC" role="2Oq$k0">
<node concept="13iPFW" id="3swcsd3r$nD" role="2Oq$k0" />
<node concept="3Tsc0h" id="3swcsd3r$nE" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM9Gou_" resolve="logical" />
</node>
</node>
<node concept="3goQfb" id="3swcsd3r$nF" role="2OqNvi">
<node concept="1bVj0M" id="3swcsd3r$nG" role="23t8la">
<node concept="3clFbS" id="3swcsd3r$nH" role="1bW5cS">
<node concept="3clFbF" id="3swcsd3r$nI" role="3cqZAp">
<node concept="2OqwBi" id="3swcsd3r$nJ" role="3clFbG">
<property role="hSjvv" value="true" />
<node concept="2ShNRf" id="3swcsd3r$nK" role="2Oq$k0">
<node concept="2HTt$P" id="3swcsd3r$nL" role="2ShVmc">
<node concept="2OqwBi" id="3swcsd3r$nM" role="2HTEbv">
<node concept="37vLTw" id="3swcsd3r$nN" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd3r$nT" resolve="log" />
</node>
<node concept="3TrEf2" id="3swcsd3r$nO" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:5zfvpQ72gqq" resolve="dataType" />
</node>
</node>
</node>
</node>
<node concept="3QWeyG" id="3swcsd3r$nP" role="2OqNvi">
<node concept="2OqwBi" id="3swcsd3rCPe" role="576Qk">
<node concept="2OqwBi" id="3swcsd3r$nQ" role="2Oq$k0">
<node concept="37vLTw" id="3swcsd3r$nR" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd3r$nT" resolve="log" />
</node>
<node concept="3Tsc0h" id="3swcsd3r$nS" role="2OqNvi">
<ref role="3TtcxE" to="5j4j:2E5lcNn8k3O" resolve="declaration" />
</node>
</node>
<node concept="3$u5V9" id="3swcsd3rJgR" role="2OqNvi">
<node concept="1bVj0M" id="3swcsd3rJgT" role="23t8la">
<node concept="3clFbS" id="3swcsd3rJgU" role="1bW5cS">
<node concept="3clFbF" id="3swcsd3rML4" role="3cqZAp">
<node concept="2OqwBi" id="3swcsd3rNq6" role="3clFbG">
<node concept="37vLTw" id="3swcsd3rML3" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd3rJgV" resolve="d" />
</node>
<node concept="3TrEf2" id="3swcsd3rOaK" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:5f6wxQ3ychO" resolve="cardinalityExpr" />
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="3swcsd3rJgV" role="1bW2Oz">
<property role="TrG5h" value="d" />
<node concept="2jxLKc" id="3swcsd3rJgW" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="3swcsd3r$nT" role="1bW2Oz">
<property role="TrG5h" value="log" />
<node concept="2jxLKc" id="3swcsd3r$nU" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="ANE8D" id="3swcsd3r$nV" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbH" id="3swcsd3sLh0" role="3cqZAp" />
<node concept="3clFbJ" id="3swcsd3scPF" role="3cqZAp">
<node concept="3clFbS" id="3swcsd3scPH" role="3clFbx">
<node concept="3cpWs6" id="3swcsd3sp0y" role="3cqZAp">
<node concept="3clFbT" id="3swcsd3spA_" role="3cqZAk" />
</node>
</node>
<node concept="3y3z36" id="3swcsd3sigY" role="3clFbw">
<node concept="2OqwBi" id="3swcsd3sl7a" role="3uHU7w">
<node concept="37vLTw" id="3swcsd3sjFS" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd3r$n_" resolve="usages" />
</node>
<node concept="34oBXx" id="3swcsd3sn2C" role="2OqNvi" />
</node>
<node concept="2OqwBi" id="3swcsd3sdFX" role="3uHU7B">
<node concept="37vLTw" id="3swcsd3sd8D" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd3royI" resolve="decls" />
</node>
<node concept="34oBXx" id="3swcsd3sfqx" role="2OqNvi" />
</node>
</node>
</node>
<node concept="1_o_46" id="3swcsd3sqe4" role="3cqZAp">
<node concept="1_o_bx" id="3swcsd3sqe6" role="1_o_by">
<node concept="1_o_bG" id="3swcsd3sqe8" role="1_o_aQ">
<property role="TrG5h" value="a" />
</node>
<node concept="37vLTw" id="3swcsd3sqQm" role="1_o_bz">
<ref role="3cqZAo" node="3swcsd3royI" resolve="decls" />
</node>
</node>
<node concept="1_o_bx" id="3swcsd3srwy" role="1_o_by">
<node concept="1_o_bG" id="3swcsd3srwz" role="1_o_aQ">
<property role="TrG5h" value="b" />
</node>
<node concept="37vLTw" id="3swcsd3st_p" role="1_o_bz">
<ref role="3cqZAo" node="3swcsd3r$n_" resolve="usages" />
</node>
</node>
<node concept="3clFbS" id="3swcsd3sqec" role="2LFqv$">
<node concept="3clFbJ" id="3swcsd3vVrG" role="3cqZAp">
<node concept="3clFbS" id="3swcsd3vVrI" role="3clFbx">
<node concept="3N13vt" id="3swcsd3vXpu" role="3cqZAp" />
</node>
<node concept="3clFbC" id="3swcsd3vWzJ" role="3clFbw">
<node concept="3M$PaV" id="3swcsd3vX2z" role="3uHU7w">
<ref role="3M$S_o" node="3swcsd3srwz" resolve="b" />
</node>
<node concept="3M$PaV" id="3swcsd3vVMI" role="3uHU7B">
<ref role="3M$S_o" node="3swcsd3sqe8" resolve="a" />
</node>
</node>
</node>
<node concept="3clFbJ" id="3swcsd3stT8" role="3cqZAp">
<node concept="3fqX7Q" id="3swcsd3sud0" role="3clFbw">
<node concept="1eOMI4" id="3swcsd3suwW" role="3fr31v">
<node concept="2YFouu" id="3swcsd3suOU" role="1eOMHV">
<node concept="3M$PaV" id="3swcsd3sv99" role="3uHU7B">
<ref role="3M$S_o" node="3swcsd3sqe8" resolve="a" />
</node>
<node concept="3M$PaV" id="3swcsd3svti" role="3uHU7w">
<ref role="3M$S_o" node="3swcsd3srwz" resolve="b" />
</node>
</node>
</node>
</node>
<node concept="3clFbS" id="3swcsd3stTa" role="3clFbx">
<node concept="3cpWs6" id="3swcsd3swiU" role="3cqZAp">
<node concept="3clFbT" id="3swcsd3swVk" role="3cqZAk" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs6" id="3swcsd3sx_q" role="3cqZAp">
<node concept="3clFbT" id="3swcsd3sxVl" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
</node>
</node>
<node concept="13h7C7" id="5itBwM6_y5u">
<property role="3GE5qa" value="macro.decl" />

View File

@ -19,6 +19,7 @@
<import index="hy7p" ref="r:01ee26d6-df00-4ffb-931c-1ddec5984886(jetbrains.mps.lang.coderules.util)" />
<import index="tpee" ref="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" implicit="true" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="x5bw" ref="r:15ea4f4e-2f41-4ce3-b7e4-a4e0737f0171(jetbrains.mps.lang.coderules.behavior)" implicit="true" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
@ -81,6 +82,9 @@
<concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
<child id="1081516765348" name="expression" index="3fr31v" />
</concept>
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
</concept>
<concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
<child id="1081773367579" name="rightExpression" index="3uHU7w" />
<child id="1081773367580" name="leftExpression" index="3uHU7B" />
@ -139,14 +143,12 @@
<concept id="1138411891628" name="jetbrains.mps.lang.smodel.structure.SNodeOperation" flags="nn" index="eCIE_">
<child id="1144104376918" name="parameter" index="1xVPHs" />
</concept>
<concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
<concept id="1138757581985" name="jetbrains.mps.lang.smodel.structure.Link_SetNewChildOperation" flags="nn" index="zfrQC" />
<concept id="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
<child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
<child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
</concept>
<concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
<reference id="1145383142433" name="elementConcept" index="2I9WkF" />
</concept>
<concept id="1139184414036" name="jetbrains.mps.lang.smodel.structure.LinkList_AddNewChildOperation" flags="nn" index="WFELt" />
<concept id="1171407110247" name="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" flags="nn" index="2Xjw5R" />
<concept id="1139613262185" name="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" flags="nn" index="1mfA1w" />
@ -212,10 +214,6 @@
<child id="540871147943773366" name="argument" index="25WWJ7" />
</concept>
<concept id="1204980550705" name="jetbrains.mps.baseLanguage.collections.structure.VisitAllOperation" flags="nn" index="2es0OD" />
<concept id="1151688443754" name="jetbrains.mps.baseLanguage.collections.structure.ListType" flags="in" index="_YKpA">
<child id="1151688676805" name="elementType" index="_ZDj9" />
</concept>
<concept id="1151702311717" name="jetbrains.mps.baseLanguage.collections.structure.ToListOperation" flags="nn" index="ANE8D" />
<concept id="1153943597977" name="jetbrains.mps.baseLanguage.collections.structure.ForEachStatement" flags="nn" index="2Gpval">
<child id="1153944400369" name="variable" index="2Gsz3X" />
<child id="1153944424730" name="inputSequence" index="2GsD0m" />
@ -229,8 +227,6 @@
<concept id="1160612413312" name="jetbrains.mps.baseLanguage.collections.structure.AddElementOperation" flags="nn" index="TSZUe" />
<concept id="1162935959151" name="jetbrains.mps.baseLanguage.collections.structure.GetSizeOperation" flags="nn" index="34oBXx" />
<concept id="1165525191778" name="jetbrains.mps.baseLanguage.collections.structure.GetFirstOperation" flags="nn" index="1uHKPH" />
<concept id="1165530316231" name="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" flags="nn" index="1v1jN8" />
<concept id="1176501494711" name="jetbrains.mps.baseLanguage.collections.structure.IsNotEmptyOperation" flags="nn" index="3GX2aA" />
</language>
</registry>
<node concept="2S6QgY" id="1CgWc1TyAgc">
@ -907,13 +903,24 @@
<node concept="3clFbS" id="3swcsd1$HaG" role="2VODD2">
<node concept="3clFbF" id="3swcsd1$Hrv" role="3cqZAp">
<node concept="Xl_RD" id="3swcsd1$Hru" role="3clFbG">
<property role="Xl_RC" value="Add Parameters Matching Prototype" />
<property role="Xl_RC" value="Update Parameter Declarations From Prototype" />
</node>
</node>
</node>
</node>
<node concept="2Sbjvc" id="3swcsd1$HaH" role="2ZfgGD">
<node concept="3clFbS" id="3swcsd1$HaI" role="2VODD2">
<node concept="3clFbF" id="3swcsd3ujDb" role="3cqZAp">
<node concept="2OqwBi" id="3swcsd3upqh" role="3clFbG">
<node concept="2OqwBi" id="3swcsd3ukx6" role="2Oq$k0">
<node concept="2Sf5sV" id="3swcsd3ujDa" role="2Oq$k0" />
<node concept="3Tsc0h" id="3swcsd3ul9i" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:3swcsd18ZGX" resolve="parameter" />
</node>
</node>
<node concept="2Kehj3" id="3swcsd3uu0s" role="2OqNvi" />
</node>
</node>
<node concept="2Gpval" id="3swcsd1$Y7Y" role="3cqZAp">
<node concept="2GrKxI" id="3swcsd1$Y80" role="2Gsz3X">
<property role="TrG5h" value="decl" />
@ -988,57 +995,13 @@
</node>
<node concept="2SaL7w" id="3swcsd1$H$6" role="2ZfVeh">
<node concept="3clFbS" id="3swcsd1$H$7" role="2VODD2">
<node concept="3cpWs8" id="3swcsd1zTOD" role="3cqZAp">
<node concept="3cpWsn" id="3swcsd1zTOE" role="3cpWs9">
<property role="TrG5h" value="decls" />
<node concept="2I9FWS" id="3swcsd1zTM2" role="1tU5fm">
<ref role="2I9WkF" to="wq2x:5itBwM6wvc4" resolve="ExpandMacroParameterDeclaration" />
</node>
<node concept="2OqwBi" id="3swcsd1zTOF" role="33vP2m">
<node concept="2OqwBi" id="3swcsd1zTOG" role="2Oq$k0">
<node concept="3TrEf2" id="3swcsd1zTOI" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM6gb4P" resolve="prototype" />
</node>
<node concept="2Sf5sV" id="3swcsd1$Lrk" role="2Oq$k0" />
<node concept="3clFbF" id="3swcsd3tlIQ" role="3cqZAp">
<node concept="3fqX7Q" id="3swcsd3tmIk" role="3clFbG">
<node concept="2OqwBi" id="3swcsd3tmIm" role="3fr31v">
<node concept="2Sf5sV" id="3swcsd3tmIn" role="2Oq$k0" />
<node concept="2qgKlT" id="3swcsd3tmIo" role="2OqNvi">
<ref role="37wK5l" to="x5bw:3swcsd3qHV7" resolve="isConsistentParameters" />
</node>
<node concept="3Tsc0h" id="3swcsd1zTOJ" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM6wU6s" resolve="parameter" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="3swcsd1$5vb" role="3cqZAp">
<node concept="3cpWsn" id="3swcsd1$5vc" role="3cpWs9">
<property role="TrG5h" value="usages" />
<node concept="_YKpA" id="3swcsd1$5u0" role="1tU5fm">
<node concept="3Tqbb2" id="3swcsd1$5u3" role="_ZDj9">
<ref role="ehGHo" to="wq2x:3swcsd17JEl" resolve="ExpandMacroParameterUsage" />
</node>
</node>
<node concept="2OqwBi" id="3swcsd1$5vd" role="33vP2m">
<node concept="2OqwBi" id="3swcsd1$5vf" role="2Oq$k0">
<node concept="3Tsc0h" id="3swcsd1$5vh" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:3swcsd18ZGX" resolve="parameter" />
</node>
<node concept="2Sf5sV" id="3swcsd1$LA$" role="2Oq$k0" />
</node>
<node concept="ANE8D" id="3swcsd1$5vr" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="3swcsd1$LJQ" role="3cqZAp">
<node concept="1Wc70l" id="3swcsd1_2Fb" role="3clFbG">
<node concept="2OqwBi" id="3swcsd1_6SC" role="3uHU7B">
<node concept="37vLTw" id="3swcsd1_33w" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd1$5vc" resolve="usages" />
</node>
<node concept="1v1jN8" id="3swcsd1_aUK" role="2OqNvi" />
</node>
<node concept="2OqwBi" id="3swcsd1_exI" role="3uHU7w">
<node concept="37vLTw" id="3swcsd1_b07" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd1zTOE" resolve="decls" />
</node>
<node concept="3GX2aA" id="3swcsd1_jts" role="2OqNvi" />
</node>
</node>
</node>
@ -1054,13 +1017,24 @@
<node concept="3clFbS" id="3swcsd1NhID" role="2VODD2">
<node concept="3clFbF" id="3swcsd1NhZv" role="3cqZAp">
<node concept="Xl_RD" id="3swcsd1NhZu" role="3clFbG">
<property role="Xl_RC" value="Add Logical Matching Prototype" />
<property role="Xl_RC" value="Update Logical Declarations From Prototype" />
</node>
</node>
</node>
</node>
<node concept="2Sbjvc" id="3swcsd1NhIE" role="2ZfgGD">
<node concept="3clFbS" id="3swcsd1NhIF" role="2VODD2">
<node concept="3clFbF" id="3swcsd3tVKe" role="3cqZAp">
<node concept="2OqwBi" id="3swcsd3u9vf" role="3clFbG">
<node concept="2OqwBi" id="3swcsd3tWZu" role="2Oq$k0">
<node concept="2Sf5sV" id="3swcsd3tVKd" role="2Oq$k0" />
<node concept="3Tsc0h" id="3swcsd3tXll" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM9Gou_" resolve="logical" />
</node>
</node>
<node concept="2Kehj3" id="3swcsd3ubWw" role="2OqNvi" />
</node>
</node>
<node concept="2Gpval" id="3swcsd1NNAf" role="3cqZAp">
<node concept="2GrKxI" id="3swcsd1NNAg" role="2Gsz3X">
<property role="TrG5h" value="protoLogDecl" />
@ -1200,30 +1174,13 @@
</node>
<node concept="2SaL7w" id="3swcsd1Nkhx" role="2ZfVeh">
<node concept="3clFbS" id="3swcsd1Nkhy" role="2VODD2">
<node concept="3clFbF" id="3swcsd1Nolz" role="3cqZAp">
<node concept="1Wc70l" id="3swcsd1N$uH" role="3clFbG">
<node concept="2OqwBi" id="3swcsd1NClt" role="3uHU7w">
<node concept="2OqwBi" id="3swcsd1N$yI" role="2Oq$k0">
<node concept="2Sf5sV" id="3swcsd1N$wJ" role="2Oq$k0" />
<node concept="3Tsc0h" id="3swcsd1N_be" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM9Gou_" resolve="logical" />
</node>
<node concept="3clFbF" id="3swcsd3tiPU" role="3cqZAp">
<node concept="3fqX7Q" id="3swcsd3tjHc" role="3clFbG">
<node concept="2OqwBi" id="3swcsd3tjHe" role="3fr31v">
<node concept="2Sf5sV" id="3swcsd3tjHf" role="2Oq$k0" />
<node concept="2qgKlT" id="3swcsd3tjHg" role="2OqNvi">
<ref role="37wK5l" to="x5bw:3swcsd3qO$G" resolve="isConsistentLogicals" />
</node>
<node concept="1v1jN8" id="3swcsd1NG8$" role="2OqNvi" />
</node>
<node concept="2OqwBi" id="3swcsd1NtjT" role="3uHU7B">
<node concept="2OqwBi" id="3swcsd1Nppf" role="2Oq$k0">
<node concept="2OqwBi" id="3swcsd1NoMy" role="2Oq$k0">
<node concept="2Sf5sV" id="3swcsd1Noly" role="2Oq$k0" />
<node concept="3TrEf2" id="3swcsd1Np6g" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM6gb4P" resolve="prototype" />
</node>
</node>
<node concept="3Tsc0h" id="3swcsd1NpH1" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM6iJYb" resolve="logical" />
</node>
</node>
<node concept="3GX2aA" id="3swcsd1NyMP" role="2OqNvi" />
</node>
</node>
</node>

View File

@ -57,7 +57,6 @@
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
<concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
<concept id="1225271221393" name="jetbrains.mps.baseLanguage.structure.NPENotEqualsExpression" flags="nn" index="17QLQc" />
<concept id="1225271283259" name="jetbrains.mps.baseLanguage.structure.NPEEqualsExpression" flags="nn" index="17R0WA" />
<concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
<child id="5680397130376446158" name="type" index="1tU5fm" />
@ -215,9 +214,6 @@
<child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
<child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
</concept>
<concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
<reference id="1145383142433" name="elementConcept" index="2I9WkF" />
</concept>
<concept id="1145404486709" name="jetbrains.mps.lang.smodel.structure.SemanticDowncastExpression" flags="nn" index="2JrnkZ">
<child id="1145404616321" name="leftExpression" index="2JrQYb" />
</concept>
@ -266,16 +262,11 @@
<concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
<child id="1204796294226" name="closure" index="23t8la" />
</concept>
<concept id="1151688443754" name="jetbrains.mps.baseLanguage.collections.structure.ListType" flags="in" index="_YKpA">
<child id="1151688676805" name="elementType" index="_ZDj9" />
</concept>
<concept id="1151689724996" name="jetbrains.mps.baseLanguage.collections.structure.SequenceType" flags="in" index="A3Dl8">
<child id="1151689745422" name="elementType" index="A3Ik2" />
</concept>
<concept id="1151702311717" name="jetbrains.mps.baseLanguage.collections.structure.ToListOperation" flags="nn" index="ANE8D" />
<concept id="1162935959151" name="jetbrains.mps.baseLanguage.collections.structure.GetSizeOperation" flags="nn" index="34oBXx" />
<concept id="1225727723840" name="jetbrains.mps.baseLanguage.collections.structure.FindFirstOperation" flags="nn" index="1z4cxt" />
<concept id="1202128969694" name="jetbrains.mps.baseLanguage.collections.structure.SelectOperation" flags="nn" index="3$u5V9" />
<concept id="9042586985346099698" name="jetbrains.mps.baseLanguage.collections.structure.MultiForEachStatement" flags="nn" index="1_o_46">
<child id="9042586985346099734" name="forEach" index="1_o_by" />
</concept>
@ -1495,75 +1486,11 @@
<property role="TrG5h" value="check_ExpandMacroTemplate" />
<property role="3GE5qa" value="macro.decl" />
<node concept="3clFbS" id="3swcsd1zSI9" role="18ibNy">
<node concept="3cpWs8" id="3swcsd1zTOD" role="3cqZAp">
<node concept="3cpWsn" id="3swcsd1zTOE" role="3cpWs9">
<property role="TrG5h" value="decls" />
<node concept="2I9FWS" id="3swcsd1zTM2" role="1tU5fm">
<ref role="2I9WkF" to="wq2x:5itBwM6wvc4" resolve="ExpandMacroParameterDeclaration" />
</node>
<node concept="2OqwBi" id="3swcsd1zTOF" role="33vP2m">
<node concept="2OqwBi" id="3swcsd1zTOG" role="2Oq$k0">
<node concept="1YBJjd" id="3swcsd1zTOH" role="2Oq$k0">
<ref role="1YBMHb" node="3swcsd1zSIb" resolve="expandMacroTemplate" />
</node>
<node concept="3TrEf2" id="3swcsd1zTOI" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM6gb4P" resolve="prototype" />
</node>
</node>
<node concept="3Tsc0h" id="3swcsd1zTOJ" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM6wU6s" resolve="parameter" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="3swcsd1$5vb" role="3cqZAp">
<node concept="3cpWsn" id="3swcsd1$5vc" role="3cpWs9">
<property role="TrG5h" value="usages" />
<node concept="_YKpA" id="3swcsd1$5u0" role="1tU5fm">
<node concept="3Tqbb2" id="3swcsd1$5u3" role="_ZDj9">
<ref role="ehGHo" to="wq2x:5itBwM6wvc4" resolve="ExpandMacroParameterDeclaration" />
</node>
</node>
<node concept="2OqwBi" id="3swcsd1$5vd" role="33vP2m">
<node concept="2OqwBi" id="3swcsd1$5ve" role="2Oq$k0">
<node concept="2OqwBi" id="3swcsd1$5vf" role="2Oq$k0">
<node concept="1YBJjd" id="3swcsd1$5vg" role="2Oq$k0">
<ref role="1YBMHb" node="3swcsd1zSIb" resolve="expandMacroTemplate" />
</node>
<node concept="3Tsc0h" id="3swcsd1$5vh" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:3swcsd18ZGX" resolve="parameter" />
</node>
</node>
<node concept="3$u5V9" id="3swcsd1$5vi" role="2OqNvi">
<node concept="1bVj0M" id="3swcsd1$5vj" role="23t8la">
<node concept="3clFbS" id="3swcsd1$5vk" role="1bW5cS">
<node concept="3clFbF" id="3swcsd1$5vl" role="3cqZAp">
<node concept="2OqwBi" id="3swcsd1$5vm" role="3clFbG">
<node concept="37vLTw" id="3swcsd1$5vn" role="2Oq$k0">
<ref role="3cqZAo" node="3swcsd1$5vp" resolve="it" />
</node>
<node concept="3TrEf2" id="3swcsd1$5vo" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:3swcsd17JEn" resolve="declaration" />
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="3swcsd1$5vp" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="3swcsd1$5vq" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="ANE8D" id="3swcsd1$5vr" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbJ" id="3swcsd1$6xt" role="3cqZAp">
<node concept="3clFbS" id="3swcsd1$6xv" role="3clFbx">
<node concept="2MkqsV" id="3swcsd1$dGD" role="3cqZAp">
<node concept="Xl_RD" id="3swcsd1$e85" role="2MkJ7o">
<property role="Xl_RC" value="parameters inconsistent with prototype" />
<property role="Xl_RC" value="parameter declarations inconsistent with prototype" />
</node>
<node concept="1YBJjd" id="3swcsd1$dJr" role="1urrMF">
<ref role="1YBMHb" node="3swcsd1zSIb" resolve="expandMacroTemplate" />
@ -1573,12 +1500,39 @@
</node>
</node>
</node>
<node concept="17QLQc" id="3swcsd1$dE_" role="3clFbw">
<node concept="37vLTw" id="3swcsd1$dEQ" role="3uHU7w">
<ref role="3cqZAo" node="3swcsd1$5vc" resolve="usages" />
<node concept="3fqX7Q" id="3swcsd3tw27" role="3clFbw">
<node concept="2OqwBi" id="3swcsd3tw29" role="3fr31v">
<node concept="1YBJjd" id="3swcsd3tw2a" role="2Oq$k0">
<ref role="1YBMHb" node="3swcsd1zSIb" resolve="expandMacroTemplate" />
</node>
<node concept="2qgKlT" id="3swcsd3tw2b" role="2OqNvi">
<ref role="37wK5l" to="x5bw:3swcsd3qHV7" resolve="isConsistentParameters" />
</node>
</node>
<node concept="37vLTw" id="3swcsd1$7aP" role="3uHU7B">
<ref role="3cqZAo" node="3swcsd1zTOE" resolve="decls" />
</node>
</node>
<node concept="3clFbJ" id="3swcsd3tw6$" role="3cqZAp">
<node concept="3clFbS" id="3swcsd3tw6_" role="3clFbx">
<node concept="2MkqsV" id="3swcsd3tw6A" role="3cqZAp">
<node concept="Xl_RD" id="3swcsd3tw6B" role="2MkJ7o">
<property role="Xl_RC" value="logical declarations inconsistent with prototype" />
</node>
<node concept="1YBJjd" id="3swcsd3tw6C" role="1urrMF">
<ref role="1YBMHb" node="3swcsd1zSIb" resolve="expandMacroTemplate" />
</node>
<node concept="2OE7Q9" id="3swcsd3tw6D" role="1urrC5">
<ref role="2OEe5H" to="wq2x:3swcsd18ZGX" resolve="parameter" />
</node>
</node>
</node>
<node concept="3fqX7Q" id="3swcsd3tw6E" role="3clFbw">
<node concept="2OqwBi" id="3swcsd3tw6F" role="3fr31v">
<node concept="1YBJjd" id="3swcsd3tw6G" role="2Oq$k0">
<ref role="1YBMHb" node="3swcsd1zSIb" resolve="expandMacroTemplate" />
</node>
<node concept="2qgKlT" id="3swcsd3tw6H" role="2OqNvi">
<ref role="37wK5l" to="x5bw:3swcsd3qO$G" resolve="isConsistentLogicals" />
</node>
</node>
</node>
</node>

View File

@ -5702,7 +5702,7 @@
<ref role="3cqZAo" node="5yr01fEduwQ" resolve="session" />
</node>
<node concept="liA8E" id="cmlg9NCiBy" role="2OqNvi">
<ref role="37wK5l" node="36tQV5BDE0Q" resolve="require" />
<ref role="37wK5l" node="5yr01fEeh7b" resolve="require" />
<node concept="10QFUN" id="cmlg9NCiBz" role="37wK5m">
<node concept="2sp9CU" id="cmlg9NCiB_" role="10QFUM" />
<node concept="37vLTw" id="500mE4_xXOX" role="10QFUP">