Refactor call macro cstr: keep arguments in binding list

The idea is to have default parameters in (regular) macro definition.
Refactoring and corresponding migration.
This commit is contained in:
Fedor Isakov 2023-10-13 17:45:35 +02:00
parent f407133f11
commit 20a0bedd81
7 changed files with 791 additions and 38 deletions

View File

@ -458,6 +458,7 @@
<child id="1217960314448" name="messageText" index="2k5Stb" />
<child id="1217960407512" name="referenceNode" index="2k6f33" />
</concept>
<concept id="1217969995796" name="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_ShowWarningMessage" flags="nn" index="2kEO4f" />
<concept id="1218047638031" name="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_CreateUniqueName" flags="nn" index="2piZGk">
<child id="1218047638032" name="baseName" index="2piZGb" />
<child id="1218049772449" name="contextNode" index="2pr8EU" />
@ -10310,49 +10311,200 @@
<node concept="liA8E" id="5itBwM9qTvK" role="2OqNvi">
<ref role="37wK5l" to="i348:5ynGfcflmng" resolve="withParam" />
<node concept="10Nm6u" id="5itBwM9qTvL" role="37wK5m">
<node concept="2b32R4" id="5itBwM9qTvM" role="lGtFl">
<node concept="3JmXsc" id="5itBwM9qTvN" role="2P8S$">
<node concept="3clFbS" id="5itBwM9qTvO" role="2VODD2">
<node concept="3clFbJ" id="1ufy3d9ol4p" role="3cqZAp">
<node concept="3clFbS" id="1ufy3d9ol4q" role="3clFbx">
<node concept="3clFbF" id="1ufy3d9ol4r" role="3cqZAp">
<node concept="2OqwBi" id="1ufy3d9ol4s" role="3clFbG">
<node concept="1iwH7S" id="1ufy3d9ol4t" role="2Oq$k0" />
<node concept="2k5nB$" id="1ufy3d9ol4u" role="2OqNvi">
<node concept="Xl_RD" id="1ufy3d9ol4v" role="2k5Stb">
<property role="Xl_RC" value="incorrect number of parameters" />
</node>
<node concept="30H73N" id="1ufy3d9ol4w" role="2k6f33" />
</node>
<node concept="1W57fq" id="1OAJnGrxLr" role="lGtFl">
<node concept="3IZrLx" id="1OAJnGrxLs" role="3IZSJc">
<node concept="3clFbS" id="1OAJnGrxLt" role="2VODD2">
<node concept="3clFbF" id="1OAJnGryg0" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGrAPs" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGryS0" role="2Oq$k0">
<node concept="30H73N" id="1OAJnGryfZ" role="2Oq$k0" />
<node concept="3Tsc0h" id="1OAJnGrzzK" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM7Pl2b" resolve="argument" />
</node>
</node>
<node concept="3GX2aA" id="1OAJnGrHJO" role="2OqNvi" />
</node>
<node concept="3y3z36" id="1ufy3d9ol4x" role="3clFbw">
<node concept="2OqwBi" id="1ufy3d9ol4y" role="3uHU7w">
<node concept="2OqwBi" id="1ufy3d9ol4z" role="2Oq$k0">
<node concept="2OqwBi" id="1ufy3d9ol4$" role="2Oq$k0">
<node concept="30H73N" id="1ufy3d9ol4_" role="2Oq$k0" />
<node concept="3TrEf2" id="1ufy3d9ol4A" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM7LtYS" resolve="template" />
</node>
</node>
</node>
<node concept="gft3U" id="1OAJnGt42c" role="UU_$l">
<node concept="15s5l7" id="1OAJnGtcoV" role="lGtFl">
<property role="1eyWvh" value="FLAVOUR_ISSUE_KIND=&quot;typesystem (typesystem)&quot;;FLAVOUR_MESSAGE=&quot;Error: Node under $LOOP$ macro should have multiple cardinality (role: templateNode)&quot;;FLAVOUR_RULE_ID=&quot;[r:00000000-0000-4000-0000-011c895902e4(jetbrains.mps.lang.generator.typesystem)/1098116234534104047]&quot;;" />
<property role="huDt6" value="Error: Node under $LOOP$ macro should have multiple cardinality (role: templateNode)" />
</node>
<node concept="10Nm6u" id="1OAJnGrYty" role="gfFT$">
<node concept="1WS0z7" id="1OAJnGs56Q" role="lGtFl">
<node concept="3JmXsc" id="1OAJnGs56R" role="3Jn$fo">
<node concept="3clFbS" id="1OAJnGs56S" role="2VODD2">
<node concept="3clFbF" id="1OAJnGs5Ff" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGs7C7" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGs6jM" role="2Oq$k0">
<node concept="30H73N" id="1OAJnGs5Fe" role="2Oq$k0" />
<node concept="3TrEf2" id="1OAJnGs6Um" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM7LtYS" resolve="template" />
</node>
</node>
<node concept="3Tsc0h" id="1OAJnGs8LE" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM5irVx" resolve="parameter" />
</node>
</node>
<node concept="3Tsc0h" id="1ufy3d9ol4B" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM5irVx" resolve="parameter" />
</node>
</node>
<node concept="34oBXx" id="1ufy3d9ol4C" role="2OqNvi" />
</node>
<node concept="2OqwBi" id="1ufy3d9ol4D" role="3uHU7B">
<node concept="2OqwBi" id="1ufy3d9ol4E" role="2Oq$k0">
<node concept="30H73N" id="1ufy3d9ol4F" role="2Oq$k0" />
<node concept="3Tsc0h" id="1ufy3d9ol4G" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM7Pl2b" resolve="argument" />
</node>
</node>
<node concept="34oBXx" id="1ufy3d9ol4H" role="2OqNvi" />
</node>
</node>
</node>
<node concept="1ps_y7" id="1OAJnGs2SC" role="lGtFl">
<node concept="1ps_xZ" id="1OAJnGs2SD" role="1ps_xO">
<property role="TrG5h" value="binding" />
<node concept="2jfdEK" id="1OAJnGs2SE" role="1ps_xN">
<node concept="3clFbS" id="1OAJnGs2SF" role="2VODD2">
<node concept="3cpWs8" id="1OAJnGsaia" role="3cqZAp">
<node concept="3cpWsn" id="1OAJnGsaib" role="3cpWs9">
<property role="TrG5h" value="binding" />
<node concept="3Tqbb2" id="1OAJnGsaic" role="1tU5fm">
<ref role="ehGHo" to="wq2x:1ufy3d9uzFb" resolve="CallMacroConstraintArgumentBinding" />
</node>
<node concept="2OqwBi" id="1OAJnGsaid" role="33vP2m">
<node concept="2OqwBi" id="1OAJnGsaif" role="2Oq$k0">
<node concept="3Tsc0h" id="1OAJnGseoy" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:1OAJnGnFnu" resolve="argumentBinding" />
</node>
<node concept="$GB7w" id="1OAJnGsaih" role="2Oq$k0">
<property role="26SvY3" value="1jlY2aid0ut/inputNode" />
</node>
</node>
<node concept="1z4cxt" id="1OAJnGsaij" role="2OqNvi">
<node concept="1bVj0M" id="1OAJnGsaik" role="23t8la">
<node concept="3clFbS" id="1OAJnGsail" role="1bW5cS">
<node concept="3clFbF" id="1OAJnGsaim" role="3cqZAp">
<node concept="17R0WA" id="1OAJnGsain" role="3clFbG">
<node concept="30H73N" id="1OAJnGsaio" role="3uHU7w" />
<node concept="2OqwBi" id="1OAJnGsaip" role="3uHU7B">
<node concept="37vLTw" id="1OAJnGsaiq" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnGsais" resolve="it" />
</node>
<node concept="3TrEf2" id="1OAJnGsair" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9uzVX" resolve="declaration" />
</node>
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="1OAJnGsais" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="1OAJnGsait" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="1OAJnGsaiu" role="3cqZAp">
<node concept="3clFbS" id="1OAJnGsaiv" role="3clFbx">
<node concept="3clFbF" id="1OAJnGsaiw" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGsaix" role="3clFbG">
<node concept="1iwH7S" id="1OAJnGsaiy" role="2Oq$k0" />
<node concept="2kEO4f" id="1OAJnG_suY" role="2OqNvi">
<node concept="Xl_RD" id="1OAJnG_sv0" role="2k5Stb">
<property role="Xl_RC" value="required parameter not specified" />
</node>
<node concept="$GB7w" id="1OAJnG_sv1" role="2k6f33">
<property role="26SvY3" value="1jlY2aid0ut/inputNode" />
</node>
</node>
</node>
</node>
</node>
<node concept="1Wc70l" id="1OAJnGsaiA" role="3clFbw">
<node concept="2OqwBi" id="1OAJnGsaiB" role="3uHU7B">
<node concept="2OqwBi" id="1OAJnGsaiC" role="2Oq$k0">
<node concept="30H73N" id="1OAJnGsaiD" role="2Oq$k0" />
<node concept="3TrEf2" id="1OAJnGsaiE" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9wUy7" resolve="init" />
</node>
</node>
<node concept="3w_OXm" id="1OAJnGsaiF" role="2OqNvi" />
</node>
<node concept="2OqwBi" id="1OAJnG_nCa" role="3uHU7w">
<node concept="37vLTw" id="1OAJnGsaiI" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnGsaib" resolve="binding" />
</node>
<node concept="3w_OXm" id="1OAJnG_q_4" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="1OAJnGsaiJ" role="3cqZAp">
<node concept="37vLTw" id="1OAJnGsaiK" role="3clFbG">
<ref role="3cqZAo" node="1OAJnGsaib" resolve="binding" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1W57fq" id="1OAJnGs0Eg" role="lGtFl">
<node concept="3IZrLx" id="1OAJnGs0Eh" role="3IZSJc">
<node concept="3clFbS" id="1OAJnGs0Ei" role="2VODD2">
<node concept="3clFbF" id="1OAJnGtgi$" role="3cqZAp">
<node concept="3y3z36" id="1OAJnGtgi_" role="3clFbG">
<node concept="10Nm6u" id="1OAJnGtgiA" role="3uHU7w" />
<node concept="2OqwBi" id="1OAJnGtgiB" role="3uHU7B">
<node concept="1iwH7S" id="1OAJnGtgiC" role="2Oq$k0" />
<node concept="1psM6Z" id="1OAJnGtgiD" role="2OqNvi">
<ref role="1psM6Y" node="1OAJnGs2SD" resolve="binding" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="gft3U" id="1OAJnGs11n" role="UU_$l">
<node concept="10QFUN" id="1OAJnGs1o0" role="gfFT$">
<node concept="3uibUv" id="1OAJnGs25s" role="10QFUM">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
<node concept="29HgVG" id="1OAJnGty7w" role="lGtFl">
<node concept="3NFfHV" id="1OAJnGtyAm" role="3NFExx">
<node concept="3clFbS" id="1OAJnGtyAn" role="2VODD2">
<node concept="3clFbF" id="1OAJnGtAl8" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGtCwF" role="3clFbG">
<node concept="30H73N" id="1OAJnGtAl7" role="2Oq$k0" />
<node concept="3TrEf2" id="1OAJnGtHpF" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM5ifE5" resolve="type" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="10Nm6u" id="1OAJnGs1IG" role="10QFUP" />
</node>
</node>
</node>
<node concept="29HgVG" id="1OAJnGthUB" role="lGtFl">
<node concept="3NFfHV" id="1OAJnGtipw" role="3NFExx">
<node concept="3clFbS" id="1OAJnGtipx" role="2VODD2">
<node concept="3clFbF" id="1OAJnGtks7" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGtnJl" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGtmui" role="2Oq$k0">
<node concept="1iwH7S" id="1OAJnGtks6" role="2Oq$k0" />
<node concept="1psM6Z" id="1OAJnGtn6I" role="2OqNvi">
<ref role="1psM6Y" node="1OAJnGs2SD" resolve="binding" />
</node>
</node>
<node concept="3TrEf2" id="1OAJnGtrrp" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9uzVV" resolve="argument" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2b32R4" id="5itBwM9qTvM" role="lGtFl">
<node concept="3JmXsc" id="5itBwM9qTvN" role="2P8S$">
<node concept="3clFbS" id="5itBwM9qTvO" role="2VODD2">
<node concept="3clFbF" id="5itBwM9qTvP" role="3cqZAp">
<node concept="2OqwBi" id="5itBwM9qTvQ" role="3clFbG">
<node concept="30H73N" id="5itBwM9qTvR" role="2Oq$k0" />

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="24" moduleVersion="0">
<language namespace="jetbrains.mps.lang.coderules" uuid="c4803b19-6d89-4a3b-bf82-390769514add" languageVersion="25" moduleVersion="0">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="languageModels" />

View File

@ -2381,9 +2381,89 @@
</node>
</node>
</node>
<node concept="1M2fIO" id="3swcsd1zSET">
<property role="3GE5qa" value="macro.decl" />
<ref role="1M2myG" to="wq2x:5itBwM65AQ4" resolve="ExpandMacroTemplate" />
<node concept="1M2fIO" id="1ufy3d9uGUS">
<property role="3GE5qa" value="constraint" />
<ref role="1M2myG" to="wq2x:1ufy3d9uzFb" resolve="CallMacroConstraintArgumentBinding" />
<node concept="1N5Pfh" id="1ufy3d9uGX4" role="1Mr941">
<ref role="1N5Vy1" to="wq2x:1ufy3d9uzVX" resolve="declaration" />
<node concept="3dgokm" id="1ufy3d9uGX5" role="1N6uqs">
<node concept="3clFbS" id="1ufy3d9uGX6" role="2VODD2">
<node concept="3cpWs8" id="1ufy3d9uGX7" role="3cqZAp">
<node concept="3cpWsn" id="1ufy3d9uGX8" role="3cpWs9">
<property role="TrG5h" value="mc" />
<node concept="3Tqbb2" id="1ufy3d9uGX9" role="1tU5fm">
<ref role="ehGHo" to="wq2x:5itBwM7LtBf" resolve="CallMacroConstraint" />
</node>
<node concept="2OqwBi" id="1ufy3d9uGXa" role="33vP2m">
<node concept="2rP1CM" id="1ufy3d9uGXb" role="2Oq$k0" />
<node concept="2Xjw5R" id="1ufy3d9uGXc" role="2OqNvi">
<node concept="1xMEDy" id="1ufy3d9uGXd" role="1xVPHs">
<node concept="chp4Y" id="1ufy3d9uGXe" role="ri$Ld">
<ref role="cht4Q" to="wq2x:5itBwM7LtBf" resolve="CallMacroConstraint" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1ufy3d9uGXl" role="3cqZAp">
<node concept="2ShNRf" id="1ufy3d9uGXm" role="3clFbG">
<node concept="YeOm9" id="1ufy3d9uGXn" role="2ShVmc">
<node concept="1Y3b0j" id="1ufy3d9uGXo" role="YeSDq">
<property role="2bfB8j" value="true" />
<ref role="37wK5l" to="o8zo:4IP40Bi3e_T" resolve="ListScope" />
<ref role="1Y3XeK" to="o8zo:4IP40Bi3e_R" resolve="ListScope" />
<node concept="3Tm1VV" id="1ufy3d9uGXp" role="1B3o_S" />
<node concept="2OqwBi" id="1ufy3d9uGXq" role="37wK5m">
<node concept="2OqwBi" id="1ufy3d9uGXr" role="2Oq$k0">
<node concept="37vLTw" id="1ufy3d9uGXs" role="2Oq$k0">
<ref role="3cqZAo" node="1ufy3d9uGX8" resolve="emc" />
</node>
<node concept="3TrEf2" id="1ufy3d9uGXt" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM7LtYS" resolve="template" />
</node>
</node>
<node concept="3Tsc0h" id="1ufy3d9uGXu" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM5irVx" resolve="parameter" />
</node>
</node>
<node concept="3clFb_" id="1ufy3d9uGXv" role="jymVt">
<property role="TrG5h" value="getName" />
<node concept="17QB3L" id="1ufy3d9uGXw" role="3clF45" />
<node concept="3Tm1VV" id="1ufy3d9uGXx" role="1B3o_S" />
<node concept="37vLTG" id="1ufy3d9uGXy" role="3clF46">
<property role="TrG5h" value="child" />
<node concept="3Tqbb2" id="1ufy3d9uGXz" role="1tU5fm" />
</node>
<node concept="3clFbS" id="1ufy3d9uGX$" role="3clF47">
<node concept="3clFbF" id="1ufy3d9uGX_" role="3cqZAp">
<node concept="2OqwBi" id="1ufy3d9uGXA" role="3clFbG">
<node concept="1PxgMI" id="1ufy3d9uGXB" role="2Oq$k0">
<property role="1BlNFB" value="true" />
<node concept="chp4Y" id="1ufy3d9uGXC" role="3oSUPX">
<ref role="cht4Q" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
<node concept="37vLTw" id="1ufy3d9uGXD" role="1m5AlR">
<ref role="3cqZAo" node="1ufy3d9uGXy" resolve="child" />
</node>
</node>
<node concept="3TrcHB" id="1ufy3d9uGXE" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="1ufy3d9uGXF" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</model>

View File

@ -3439,6 +3439,35 @@
</node>
<node concept="3F0A7n" id="5itBwM5ikqx" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<node concept="A1WHr" id="1OAJnGjipA" role="3vIgyS">
<ref role="2ZyFGn" to="wq2x:5itBwM5i6X6" resolve="CallMacroParameterDeclaration" />
</node>
</node>
<node concept="3EZMnI" id="1OAJnGjhRt" role="3EZMnx">
<node concept="VPM3Z" id="1OAJnGjhRu" role="3F10Kt" />
<node concept="3F0ifn" id="1OAJnGjhRv" role="3EZMnx">
<property role="3F0ifm" value="=" />
<ref role="1k5W1q" to="tpen:hF$iUjy" resolve="Operator" />
</node>
<node concept="3F1sOY" id="1OAJnGjhRw" role="3EZMnx">
<ref role="1NtTu8" to="wq2x:1ufy3d9wUy7" resolve="init" />
</node>
<node concept="l2Vlx" id="1OAJnGjhRx" role="2iSdaV" />
<node concept="pkWqt" id="1OAJnGjhRy" role="pqm2j">
<node concept="3clFbS" id="1OAJnGjhRz" role="2VODD2">
<node concept="3clFbF" id="1OAJnGjhR$" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGjhR_" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGjhRA" role="2Oq$k0">
<node concept="pncrf" id="1OAJnGjhRB" role="2Oq$k0" />
<node concept="3TrEf2" id="1OAJnGjhRC" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9wUy7" resolve="init" />
</node>
</node>
<node concept="3x8VRR" id="1OAJnGjhRD" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="l2Vlx" id="5itBwM5ijer" role="2iSdaV" />
</node>
@ -4211,6 +4240,35 @@
<node concept="3F0ifn" id="5itBwM7Q6RO" role="2czzBI">
<property role="3F0ifm" value="" />
</node>
<node concept="pkWqt" id="1OAJnGnKcu" role="pqm2j">
<node concept="3clFbS" id="1OAJnGnKcv" role="2VODD2">
<node concept="3clFbF" id="1OAJnGnKS7" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGnOnW" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGnLio" role="2Oq$k0">
<node concept="pncrf" id="1OAJnGnKS6" role="2Oq$k0" />
<node concept="3Tsc0h" id="1OAJnGnLwU" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM7Pl2b" resolve="argument" />
</node>
</node>
<node concept="3GX2aA" id="1OAJnGnRYV" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="11LMrY" id="1OAJnGxJMe" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F2HdR" id="1OAJnGnS3r" role="3EZMnx">
<property role="2czwfO" value="," />
<ref role="1NtTu8" to="wq2x:1OAJnGnFnu" resolve="argumentBinding" />
<node concept="l2Vlx" id="1OAJnGnS3t" role="2czzBx" />
<node concept="3F0ifn" id="1OAJnGwcNO" role="2czzBI">
<property role="3F0ifm" value="" />
</node>
<node concept="11L4FC" id="1OAJnGwcNR" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="5itBwM7Lvt4" role="3EZMnx">
<property role="3F0ifm" value=")" />
@ -9493,5 +9551,87 @@
<ref role="aqKnT" to="wq2x:3swcsd17JEl" resolve="ExpandMacroParameterUsage" />
<node concept="22hDWj" id="3swcsd1rzJT" role="22hAXT" />
</node>
<node concept="3ICUPy" id="1ufy3d9uBp5">
<property role="3GE5qa" value="macro.decl" />
<ref role="aqKnT" to="wq2x:5itBwM5i6X6" resolve="CallMacroParameterDeclaration" />
<node concept="1Qtc8_" id="1ufy3d9uBp8" role="IW6Ez">
<node concept="3cWJ9i" id="1ufy3d9uBp9" role="1Qtc8$">
<node concept="CtIbL" id="1ufy3d9uBpa" role="CtIbM">
<property role="CtIbK" value="30NnNOohrQL/RIGHT" />
</node>
</node>
<node concept="IWgqT" id="1ufy3d9uBpb" role="1Qtc8A">
<node concept="1hCUdq" id="1ufy3d9uBpc" role="1hCUd6">
<node concept="3clFbS" id="1ufy3d9uBpd" role="2VODD2">
<node concept="3clFbF" id="1ufy3d9uBpe" role="3cqZAp">
<node concept="Xl_RD" id="1ufy3d9uBpf" role="3clFbG">
<property role="Xl_RC" value="=" />
</node>
</node>
</node>
</node>
<node concept="IWg2L" id="1ufy3d9uBpg" role="IWgqQ">
<node concept="3clFbS" id="1ufy3d9uBph" role="2VODD2">
<node concept="3clFbF" id="1ufy3d9uBpi" role="3cqZAp">
<node concept="2OqwBi" id="1ufy3d9uBpj" role="3clFbG">
<node concept="2OqwBi" id="1ufy3d9uBpk" role="2Oq$k0">
<node concept="7Obwk" id="1ufy3d9uBpl" role="2Oq$k0" />
<node concept="3TrEf2" id="1ufy3d9uBpm" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9wUy7" resolve="init" />
</node>
</node>
<node concept="2DeJnY" id="1ufy3d9uBpn" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="27VH4U" id="1ufy3d9uBpo" role="2jiSrf">
<node concept="3clFbS" id="1ufy3d9uBpp" role="2VODD2">
<node concept="3clFbF" id="1ufy3d9uBpq" role="3cqZAp">
<node concept="2OqwBi" id="1ufy3d9uBpr" role="3clFbG">
<node concept="2OqwBi" id="1ufy3d9uBps" role="2Oq$k0">
<node concept="7Obwk" id="1ufy3d9uBpt" role="2Oq$k0" />
<node concept="3TrEf2" id="1ufy3d9uBpu" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9wUy7" resolve="init" />
</node>
</node>
<node concept="3w_OXm" id="1ufy3d9uBpv" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="22hDWj" id="1ufy3d9uBp6" role="22hAXT" />
</node>
<node concept="24kQdi" id="1ufy3d9uE4a">
<property role="3GE5qa" value="constraint" />
<ref role="1XX52x" to="wq2x:1ufy3d9uzFb" resolve="CallMacroConstraintArgumentBinding" />
<node concept="3EZMnI" id="1ufy3d9uGzc" role="2wV5jI">
<node concept="1iCGBv" id="1ufy3d9uGzd" role="3EZMnx">
<ref role="1NtTu8" to="wq2x:1ufy3d9uzVX" resolve="declaration" />
<node concept="1sVBvm" id="1ufy3d9uGze" role="1sWHZn">
<node concept="3F0A7n" id="1ufy3d9uGzf" role="2wV5jI">
<property role="1Intyy" value="true" />
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<ref role="1k5W1q" node="4bWqD4C9OIl" resolve="BindingName" />
</node>
</node>
</node>
<node concept="3F0ifn" id="1ufy3d9uGzg" role="3EZMnx">
<property role="3F0ifm" value="=" />
<node concept="11L4FC" id="1ufy3d9uGzh" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="11LMrY" id="1ufy3d9uGzi" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F1sOY" id="1ufy3d9uGzj" role="3EZMnx">
<ref role="1NtTu8" to="wq2x:1ufy3d9uzVV" resolve="argument" />
</node>
<node concept="l2Vlx" id="1ufy3d9uGzk" role="2iSdaV" />
</node>
</node>
</model>

View File

@ -171,6 +171,9 @@
<concept id="1138411891628" name="jetbrains.mps.lang.smodel.structure.SNodeOperation" flags="nn" index="eCIE_">
<child id="1144104376918" name="parameter" index="1xVPHs" />
</concept>
<concept id="1138757581985" name="jetbrains.mps.lang.smodel.structure.Link_SetNewChildOperation" flags="nn" index="zfrQC">
<reference id="1139880128956" name="concept" index="1A9B2P" />
</concept>
<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" />
@ -181,6 +184,7 @@
<concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
<child id="1177027386292" name="conceptArgument" index="cj9EA" />
</concept>
<concept id="1171999116870" name="jetbrains.mps.lang.smodel.structure.Node_IsNullOperation" flags="nn" index="3w_OXm" />
<concept id="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
<child id="1207343664468" name="conceptArgument" index="ri$Ld" />
</concept>
@ -236,6 +240,10 @@
<child id="1204796294226" name="closure" index="23t8la" />
</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" />
@ -247,7 +255,18 @@
<concept id="1165530316231" name="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" flags="nn" index="1v1jN8" />
<concept id="1225727723840" name="jetbrains.mps.baseLanguage.collections.structure.FindFirstOperation" flags="nn" index="1z4cxt" />
<concept id="1202120902084" name="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" flags="nn" index="3zZkjj" />
<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="1176501494711" name="jetbrains.mps.baseLanguage.collections.structure.IsNotEmptyOperation" flags="nn" index="3GX2aA" />
<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>
</language>
</registry>
<node concept="3SyAh_" id="7smgEqgGBKb">
@ -2350,5 +2369,280 @@
<ref role="3uigEE" to="slm6:5TUCQr2ybBO" resolve="HasMigrationScriptReference" />
</node>
</node>
<node concept="3SyAh_" id="1OAJnG4Kgo">
<property role="qMTe8" value="24" />
<property role="TrG5h" value="IntroduceArgumentBindings" />
<node concept="3Tm1VV" id="1OAJnG4Kgp" role="1B3o_S" />
<node concept="3tTeZs" id="1OAJnG4Kgq" 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="1OAJnG4Kgr" 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="1OAJnG4Kgs" 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="1OAJnG4Kgt" role="jymVt" />
<node concept="3tYpMH" id="1OAJnG4Kgu" role="jymVt">
<property role="TrG5h" value="isRerunnable" />
<property role="3tYpME" value="true" />
<ref role="25KYV2" to="slm6:1JWcQ2VeWIs" resolve="isRerunnable" />
<node concept="3Tm1VV" id="1OAJnG4Kgv" role="1B3o_S" />
<node concept="10P_77" id="1OAJnG4Kgw" role="1tU5fm" />
</node>
<node concept="3tYpXE" id="1OAJnG4KIm" role="jymVt">
<property role="TrG5h" value="description" />
<property role="3tYpXF" value="Replace Macro Arguments With Bindings" />
<ref role="25KYV2" to="slm6:1_lSsE3RFpE" resolve="description" />
<node concept="3Tm1VV" id="1OAJnG4KIo" role="1B3o_S" />
<node concept="17QB3L" id="1OAJnG4KIp" role="1tU5fm" />
</node>
<node concept="q3mfD" id="1OAJnG4Kgy" role="jymVt">
<property role="TrG5h" value="execute" />
<ref role="2VtyIY" to="slm6:4ubqdNOF9cA" resolve="execute" />
<node concept="3Tm1VV" id="1OAJnG4Kg$" role="1B3o_S" />
<node concept="3clFbS" id="1OAJnG4KgA" role="3clF47">
<node concept="L3pyB" id="1OAJnG4LjQ" role="3cqZAp">
<node concept="3clFbS" id="1OAJnG4LjR" role="L3pyw">
<node concept="3clFbF" id="1OAJnG7Kqb" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnG7Kqc" role="3clFbG">
<property role="hSjvv" value="true" />
<node concept="2OqwBi" id="1OAJnGzH9C" role="2Oq$k0">
<property role="hSjvv" value="true" />
<node concept="qVDSY" id="1OAJnG7Kqd" role="2Oq$k0">
<node concept="chp4Y" id="1OAJnG7Kqe" role="qVDSX">
<ref role="cht4Q" to="wq2x:5itBwM7LtBf" resolve="CallMacroConstraint" />
</node>
</node>
<node concept="3zZkjj" id="1OAJnGzJqw" role="2OqNvi">
<node concept="1bVj0M" id="1OAJnGzJqy" role="23t8la">
<node concept="3clFbS" id="1OAJnGzJqz" role="1bW5cS">
<node concept="3clFbF" id="1OAJnGzKC2" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGzPyw" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGzLtZ" role="2Oq$k0">
<node concept="37vLTw" id="1OAJnGzKC1" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnGzJq$" resolve="cmc" />
</node>
<node concept="3Tsc0h" id="1OAJnGzMmp" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM7Pl2b" resolve="argument" />
</node>
</node>
<node concept="3GX2aA" id="1OAJnGzU3n" role="2OqNvi" />
</node>
</node>
</node>
<node concept="gl6BB" id="1OAJnGzJq$" role="1bW2Oz">
<property role="TrG5h" value="cmc" />
<node concept="2jxLKc" id="1OAJnGzJq_" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="2es0OD" id="1OAJnG7Kqf" role="2OqNvi">
<node concept="1bVj0M" id="1OAJnG7Kqg" role="23t8la">
<node concept="3clFbS" id="1OAJnG7Kqh" role="1bW5cS">
<node concept="3cpWs8" id="1OAJnGq5re" role="3cqZAp">
<node concept="3cpWsn" id="1OAJnGq5rf" role="3cpWs9">
<property role="TrG5h" value="args" />
<node concept="_YKpA" id="1OAJnGq5or" role="1tU5fm">
<node concept="3Tqbb2" id="1OAJnGq5ou" role="_ZDj9">
<ref role="ehGHo" to="tpee:fz3vP1J" resolve="Expression" />
</node>
</node>
<node concept="2OqwBi" id="1OAJnGq5rg" role="33vP2m">
<node concept="2OqwBi" id="1OAJnGq5rh" role="2Oq$k0">
<node concept="37vLTw" id="1OAJnGq5ri" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnG7Kr4" resolve="cmc" />
</node>
<node concept="3Tsc0h" id="1OAJnGq5rj" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM7Pl2b" resolve="argument" />
</node>
</node>
<node concept="ANE8D" id="1OAJnGq5rk" role="2OqNvi" />
</node>
</node>
</node>
<node concept="1_o_46" id="1OAJnGqsVI" role="3cqZAp">
<node concept="1_o_bx" id="1OAJnGqsVK" role="1_o_by">
<node concept="1_o_bG" id="1OAJnGqsVM" role="1_o_aQ">
<property role="TrG5h" value="e" />
</node>
<node concept="37vLTw" id="1OAJnGqve3" role="1_o_bz">
<ref role="3cqZAo" node="1OAJnGq5rf" resolve="args" />
</node>
</node>
<node concept="1_o_bx" id="1OAJnGqwTO" role="1_o_by">
<node concept="1_o_bG" id="1OAJnGqwTP" role="1_o_aQ">
<property role="TrG5h" value="decl" />
</node>
<node concept="2OqwBi" id="1OAJnGqFw5" role="1_o_bz">
<node concept="2OqwBi" id="1OAJnGqCe9" role="2Oq$k0">
<node concept="37vLTw" id="1OAJnGqAW7" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnG7Kr4" resolve="cmc" />
</node>
<node concept="3TrEf2" id="1OAJnGqE2B" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM7LtYS" resolve="template" />
</node>
</node>
<node concept="3Tsc0h" id="1OAJnGqHE4" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM5irVx" resolve="parameter" />
</node>
</node>
</node>
<node concept="3clFbS" id="1OAJnGqsVQ" role="2LFqv$">
<node concept="3cpWs8" id="1OAJnGqmvt" role="3cqZAp">
<node concept="3cpWsn" id="1OAJnGqmvu" role="3cpWs9">
<property role="TrG5h" value="bnd" />
<node concept="3Tqbb2" id="1OAJnGqmng" role="1tU5fm">
<ref role="ehGHo" to="wq2x:1ufy3d9uzFb" resolve="CallMacroConstraintArgumentBinding" />
</node>
<node concept="2OqwBi" id="1OAJnGqmvv" role="33vP2m">
<node concept="2OqwBi" id="1OAJnGqmvw" role="2Oq$k0">
<node concept="37vLTw" id="1OAJnGqmvx" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnG7Kr4" resolve="cmc" />
</node>
<node concept="3Tsc0h" id="1OAJnGqmvy" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:1OAJnGnFnu" resolve="argumentBinding" />
</node>
</node>
<node concept="WFELt" id="1OAJnGqmvz" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="1OAJnGq9tE" role="3cqZAp">
<node concept="37vLTI" id="1OAJnGqMUQ" role="3clFbG">
<node concept="3M$PaV" id="1OAJnGqO3G" role="37vLTx">
<ref role="3M$S_o" node="1OAJnGqwTP" resolve="decl" />
</node>
<node concept="2OqwBi" id="1OAJnGqqrX" role="37vLTJ">
<node concept="37vLTw" id="1OAJnGqmv$" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnGqmvu" resolve="bnd" />
</node>
<node concept="3TrEf2" id="1OAJnGqLxR" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9uzVX" resolve="declaration" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1OAJnGqQDX" role="3cqZAp">
<node concept="37vLTI" id="1OAJnGqUqg" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGqWHa" role="37vLTx">
<node concept="3M$PaV" id="1OAJnGqV_d" role="2Oq$k0">
<ref role="3M$S_o" node="1OAJnGqsVM" resolve="e" />
</node>
<node concept="3YRAZt" id="1OAJnGqZlM" role="2OqNvi" />
</node>
<node concept="2OqwBi" id="1OAJnGqRVa" role="37vLTJ">
<node concept="37vLTw" id="1OAJnGqQDV" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnGqmvu" resolve="bnd" />
</node>
<node concept="3TrEf2" id="1OAJnGqT62" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9uzVV" resolve="argument" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="1OAJnG7Kr4" role="1bW2Oz">
<property role="TrG5h" value="cmc" />
<node concept="2jxLKc" id="1OAJnG7Kr5" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1OAJnGzzDf" role="3cqZAp" />
<node concept="3clFbF" id="1OAJnGz$aG" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGzV2x" role="3clFbG">
<property role="hSjvv" value="true" />
<node concept="2OqwBi" id="1OAJnGz_sJ" role="2Oq$k0">
<property role="hSjvv" value="true" />
<node concept="qVDSY" id="1OAJnGz$aD" role="2Oq$k0">
<node concept="chp4Y" id="1OAJnGz$lN" role="qVDSX">
<ref role="cht4Q" to="wq2x:5itBwM5i6X6" resolve="CallMacroParameterDeclaration" />
</node>
</node>
<node concept="3zZkjj" id="1OAJnGzAO1" role="2OqNvi">
<node concept="1bVj0M" id="1OAJnGzAO3" role="23t8la">
<node concept="3clFbS" id="1OAJnGzAO4" role="1bW5cS">
<node concept="3clFbF" id="1OAJnGzB0Y" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnGzDOb" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGzBQP" role="2Oq$k0">
<node concept="37vLTw" id="1OAJnGzB0X" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnGzAO5" resolve="it" />
</node>
<node concept="3TrEf2" id="1OAJnGzCHG" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9wUy7" resolve="init" />
</node>
</node>
<node concept="3w_OXm" id="1OAJnGzEgt" role="2OqNvi" />
</node>
</node>
</node>
<node concept="gl6BB" id="1OAJnGzAO5" role="1bW2Oz">
<property role="TrG5h" value="pd" />
<node concept="2jxLKc" id="1OAJnGzAO6" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="2es0OD" id="1OAJnGzWrc" role="2OqNvi">
<node concept="1bVj0M" id="1OAJnGzWre" role="23t8la">
<node concept="3clFbS" id="1OAJnGzWrf" role="1bW5cS">
<node concept="3clFbF" id="1OAJnGzY$4" role="3cqZAp">
<node concept="2OqwBi" id="1OAJnG$0IB" role="3clFbG">
<node concept="2OqwBi" id="1OAJnGzZ0G" role="2Oq$k0">
<node concept="37vLTw" id="1OAJnGzY$3" role="2Oq$k0">
<ref role="3cqZAo" node="1OAJnGzWrg" resolve="pd" />
</node>
<node concept="3TrEf2" id="1OAJnG$0c4" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9wUy7" resolve="init" />
</node>
</node>
<node concept="zfrQC" id="1OAJnG$1eR" role="2OqNvi">
<ref role="1A9B2P" to="tpee:f_0Nm5B" resolve="NullLiteral" />
</node>
</node>
</node>
</node>
<node concept="gl6BB" id="1OAJnGzWrg" role="1bW2Oz">
<property role="TrG5h" value="pd" />
<node concept="2jxLKc" id="1OAJnGzWrh" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="1OAJnG4Llq" role="L3pyr">
<ref role="3cqZAo" node="1OAJnG4KgC" resolve="m" />
</node>
</node>
</node>
<node concept="ffn8J" id="1OAJnG4KgC" role="3clF46">
<property role="TrG5h" value="m" />
<ref role="ffrpq" to="slm6:7fCCGqboj9J" resolve="m" />
<node concept="3uibUv" id="1OAJnG4KgB" role="1tU5fm">
<ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
</node>
</node>
<node concept="q3mfm" id="1OAJnG4KgD" role="3clF45">
<ref role="q3mfh" to="slm6:4F5w8gPXEEe" />
<ref role="1QQUv3" node="1OAJnG4Kgy" resolve="execute" />
</node>
</node>
<node concept="3tTeZs" id="1OAJnG4KgE" role="jymVt">
<property role="3tTeZt" value="&lt;no result checking&gt;" />
<ref role="3tTeZr" to="slm6:1JWcQ2VeXpD" resolve="check" />
</node>
<node concept="3uibUv" id="1OAJnG4KgH" role="1zkMxy">
<ref role="3uigEE" to="slm6:5TUCQr2ybBO" resolve="HasMigrationScriptReference" />
</node>
</node>
</model>

View File

@ -1081,6 +1081,12 @@
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" to="tpee:fz3vP1H" resolve="Type" />
</node>
<node concept="1TJgyj" id="1ufy3d9wUy7" role="1TKVEi">
<property role="IQ2ns" value="1697725338400041095" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="init" />
<ref role="20lvS9" to="tpee:fz3vP1J" resolve="Expression" />
</node>
<node concept="PrWs8" id="5itBwM5ie4J" role="PzmwI">
<ref role="PrY4T" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
</node>
@ -1357,6 +1363,14 @@
<property role="20kJfa" value="argument" />
<property role="20lbJX" value="fLJekj5/_0__n" />
<ref role="20lvS9" to="tpee:fz3vP1J" resolve="Expression" />
<node concept="asaX9" id="1OAJnGnFnB" role="lGtFl" />
</node>
<node concept="1TJgyj" id="1OAJnGnFnu" role="1TKVEi">
<property role="IQ2ns" value="32821478321731038" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="argumentBinding" />
<property role="20lbJX" value="fLJekj5/_0__n" />
<ref role="20lvS9" node="1ufy3d9uzFb" resolve="CallMacroConstraintArgumentBinding" />
</node>
<node concept="1TJgyj" id="5itBwM7LtYS" role="1TKVEi">
<property role="IQ2ns" value="6097203247184207800" />
@ -1811,5 +1825,24 @@
<ref role="20lvS9" node="3swcsd17JEl" resolve="ExpandMacroParameterUsage" />
</node>
</node>
<node concept="1TIwiD" id="1ufy3d9uzFb">
<property role="EcuMT" value="1697725338399423179" />
<property role="3GE5qa" value="constraint" />
<property role="TrG5h" value="CallMacroConstraintArgumentBinding" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" />
<node concept="1TJgyj" id="1ufy3d9uzVX" role="1TKVEi">
<property role="IQ2ns" value="1697725338399424253" />
<property role="20kJfa" value="declaration" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="5itBwM5i6X6" resolve="CallMacroParameterDeclaration" />
</node>
<node concept="1TJgyj" id="1ufy3d9uzVV" role="1TKVEi">
<property role="IQ2ns" value="1697725338399424251" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="argument" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" to="tpee:fz3vP1J" resolve="Expression" />
</node>
</node>
</model>

View File

@ -1604,5 +1604,59 @@
<ref role="1YaFvo" to="wq2x:3swcsd1iBEb" resolve="ExpandMacroParameterUsageReference" />
</node>
</node>
<node concept="1YbPZF" id="1ufy3d9uDEz">
<property role="TrG5h" value="typeof_CallMacroParameterDeclaration" />
<property role="3GE5qa" value="macro.decl" />
<node concept="3clFbS" id="1ufy3d9uDE$" role="18ibNy">
<node concept="1ZobV4" id="1ufy3d9uDEH" role="3cqZAp">
<property role="3wDh2S" value="true" />
<node concept="mw_s8" id="1ufy3d9uDEI" role="1ZfhK$">
<node concept="1Z2H0r" id="1ufy3d9uDEJ" role="mwGJk">
<node concept="2OqwBi" id="1ufy3d9uDEK" role="1Z2MuG">
<node concept="1YBJjd" id="1ufy3d9uDEL" role="2Oq$k0">
<ref role="1YBMHb" node="1ufy3d9uDEA" resolve="empd" />
</node>
<node concept="3TrEf2" id="1ufy3d9uDEM" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1ufy3d9wUy7" resolve="init" />
</node>
</node>
</node>
</node>
<node concept="mw_s8" id="1ufy3d9uDEN" role="1ZfhKB">
<node concept="2OqwBi" id="1ufy3d9uDEO" role="mwGJk">
<node concept="1YBJjd" id="1ufy3d9uDEP" role="2Oq$k0">
<ref role="1YBMHb" node="1ufy3d9uDEA" resolve="empd" />
</node>
<node concept="3TrEf2" id="1ufy3d9uDEQ" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM5ifE5" resolve="type" />
</node>
</node>
</node>
</node>
<node concept="1Z5TYs" id="1ufy3d9uDER" role="3cqZAp">
<node concept="mw_s8" id="1ufy3d9uDES" role="1ZfhKB">
<node concept="2OqwBi" id="1ufy3d9uDET" role="mwGJk">
<node concept="1YBJjd" id="1ufy3d9uDEU" role="2Oq$k0">
<ref role="1YBMHb" node="1ufy3d9uDEA" resolve="empd" />
</node>
<node concept="3TrEf2" id="1ufy3d9uDEV" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM5ifE5" resolve="type" />
</node>
</node>
</node>
<node concept="mw_s8" id="1ufy3d9uDEW" role="1ZfhK$">
<node concept="1Z2H0r" id="1ufy3d9uDEX" role="mwGJk">
<node concept="1YBJjd" id="1ufy3d9uDEY" role="1Z2MuG">
<ref role="1YBMHb" node="1ufy3d9uDEA" resolve="empd" />
</node>
</node>
</node>
</node>
</node>
<node concept="1YaCAy" id="1ufy3d9uDEA" role="1YuTPh">
<property role="TrG5h" value="cmpd" />
<ref role="1YaFvo" to="wq2x:5itBwM5i6X6" resolve="CallMacroParameterDeclaration" />
</node>
</node>
</model>