Logic language: introduce ListRole, create a migration to extract ChildRole with single list to ListRole.

This commit is contained in:
Fedor Isakov 2017-10-23 12:08:32 +02:00
parent f4a3f1fae5
commit 582c8d32d3
8 changed files with 698 additions and 39 deletions

View File

@ -40,9 +40,14 @@
<module ref="a3e4657f-a76c-45bb-bbda-c764596ecc65(jetbrains.mps.baseLanguage.logging.runtime)" />
<module ref="23949432-aaff-4c03-b7da-26e4e956ccea(jetbrains.mps.baseLanguage.regexp.runtime)" />
<module ref="d44dab97-aaac-44cb-9745-8a14db674c03(jetbrains.mps.baseLanguage.tuples.runtime)" />
<module ref="2af156ab-65c1-4a62-bd0d-ea734f71eab6(jetbrains.mps.dataFlow.runtime)" />
<module ref="34e84b8f-afa8-4364-abcd-a279fddddbe7(jetbrains.mps.editor.runtime)" />
<module ref="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" />
<module ref="d936855b-48da-4812-a8a0-2bfddd633ac5(jetbrains.mps.lang.behavior.api)" />
<module ref="d936855b-48da-4812-a8a0-2bfddd633ac4(jetbrains.mps.lang.behavior.runtime)" />
<module ref="528ff3b9-5fc4-40dd-931f-c6ce3650640e(jetbrains.mps.lang.migration.runtime)" />
<module ref="d7eb0a2a-bd50-4576-beae-e4a89db35f20(jetbrains.mps.lang.scopes.runtime)" />
<module ref="8fe4c62a-2020-4ff4-8eda-f322a55bdc9f(jetbrains.mps.refactoring.runtime)" />
<module ref="9a4afe51-f114-4595-b5df-048ce3c596be(jetbrains.mps.runtime)" />
</dependencies>
<classpath>
@ -855,9 +860,14 @@
<module ref="a3e4657f-a76c-45bb-bbda-c764596ecc65(jetbrains.mps.baseLanguage.logging.runtime)" />
<module ref="23949432-aaff-4c03-b7da-26e4e956ccea(jetbrains.mps.baseLanguage.regexp.runtime)" />
<module ref="d44dab97-aaac-44cb-9745-8a14db674c03(jetbrains.mps.baseLanguage.tuples.runtime)" />
<module ref="2af156ab-65c1-4a62-bd0d-ea734f71eab6(jetbrains.mps.dataFlow.runtime)" />
<module ref="34e84b8f-afa8-4364-abcd-a279fddddbe7(jetbrains.mps.editor.runtime)" />
<module ref="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" />
<module ref="d936855b-48da-4812-a8a0-2bfddd633ac5(jetbrains.mps.lang.behavior.api)" />
<module ref="d936855b-48da-4812-a8a0-2bfddd633ac4(jetbrains.mps.lang.behavior.runtime)" />
<module ref="528ff3b9-5fc4-40dd-931f-c6ce3650640e(jetbrains.mps.lang.migration.runtime)" />
<module ref="d7eb0a2a-bd50-4576-beae-e4a89db35f20(jetbrains.mps.lang.scopes.runtime)" />
<module ref="8fe4c62a-2020-4ff4-8eda-f322a55bdc9f(jetbrains.mps.refactoring.runtime)" />
<module ref="9a4afe51-f114-4595-b5df-048ce3c596be(jetbrains.mps.runtime)" />
</dependencies>
<classpath>

View File

@ -66,6 +66,9 @@
<concept id="1079359253375" name="jetbrains.mps.baseLanguage.structure.ParenthesizedExpression" flags="nn" index="1eOMI4">
<child id="1079359253376" name="expression" index="1eOMHV" />
</concept>
<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="ng" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
<child id="1068499141038" name="actualArgument" index="37wK5m" />
@ -411,7 +414,7 @@
</node>
</node>
<node concept="3aamgX" id="29_L5zQWy8j" role="3acgRq">
<ref role="30HIoZ" to="5j4j:6$jH9oLmYC_" resolve="Compound" />
<ref role="30HIoZ" to="5j4j:6$jH9oLmYC_" resolve="TermNode" />
<node concept="gft3U" id="29_L5zQWy8k" role="1lVwrX">
<node concept="2YIFZM" id="29_L5zQWy8l" role="gfFT$">
<ref role="1Pybhc" to="6exd:5JQSuNswOXL" resolve="TermNode" />
@ -490,13 +493,15 @@
<node concept="1bVj0M" id="29_L5zQWy8L" role="23t8la">
<node concept="3clFbS" id="29_L5zQWy8M" role="1bW5cS">
<node concept="3clFbF" id="29_L5zQWy8N" role="3cqZAp">
<node concept="2OqwBi" id="29_L5zQWy8O" role="3clFbG">
<node concept="37vLTw" id="29_L5zQWy8P" role="2Oq$k0">
<ref role="3cqZAo" node="29_L5zQWy8S" resolve="it" />
</node>
<node concept="1mIQ4w" id="29_L5zQWy8Q" role="2OqNvi">
<node concept="chp4Y" id="29_L5zQWy8R" role="cj9EA">
<ref role="cht4Q" to="5j4j:6$jH9oLmYEJ" resolve="ChildRole" />
<node concept="3fqX7Q" id="428_4iY50BX" role="3clFbG">
<node concept="2OqwBi" id="428_4iY50BZ" role="3fr31v">
<node concept="37vLTw" id="428_4iY50C0" role="2Oq$k0">
<ref role="3cqZAo" node="29_L5zQWy8S" resolve="it" />
</node>
<node concept="1mIQ4w" id="428_4iY50C1" role="2OqNvi">
<node concept="chp4Y" id="428_4iY51b$" role="cj9EA">
<ref role="cht4Q" to="5j4j:6$jH9oLmYI0" resolve="ValueRole" />
</node>
</node>
</node>
</node>
@ -735,6 +740,71 @@
</node>
</node>
</node>
<node concept="3aamgX" id="5NAQwIkRG1m" role="3acgRq">
<ref role="30HIoZ" to="5j4j:5NAQwIkRIXT" resolve="ListRole" />
<node concept="30G5F_" id="5NAQwIkRKxX" role="30HLyM">
<node concept="3clFbS" id="5NAQwIkRKxY" role="2VODD2">
<node concept="3clFbF" id="5NAQwIkRLs$" role="3cqZAp">
<node concept="2OqwBi" id="5NAQwIkRMFR" role="3clFbG">
<node concept="2OqwBi" id="5NAQwIkRLTz" role="2Oq$k0">
<node concept="30H73N" id="5NAQwIkRLsz" role="2Oq$k0" />
<node concept="3CFZ6_" id="5NAQwIkRMaI" role="2OqNvi">
<node concept="3CFYIy" id="5NAQwIkRMlY" role="3CFYIz">
<ref role="3CFYIx" to="5j4j:dfChU1zo4B" resolve="Splice" />
</node>
</node>
</node>
<node concept="3w_OXm" id="5NAQwIkRNbY" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="gft3U" id="5NAQwIkRNr4" role="1lVwrX">
<node concept="2YIFZM" id="5NAQwIkRNr5" role="gfFT$">
<ref role="1Pybhc" to="6exd:6YPNC4OECgm" resolve="ListRole" />
<ref role="37wK5l" to="6exd:6YPNC4OEDj2" resolve="create" />
<node concept="2YIFZM" id="5NAQwIkRNr6" role="37wK5m">
<ref role="37wK5l" to="6exd:6YPNC4NZlZx" resolve="symbol" />
<ref role="1Pybhc" to="6exd:6YPNC4ODVle" resolve="RoleNode" />
<node concept="Xl_RD" id="5NAQwIkRNr7" role="37wK5m">
<property role="Xl_RC" value="name" />
<node concept="17Uvod" id="5NAQwIkRNr8" role="lGtFl">
<property role="2qtEX9" value="value" />
<property role="P4ACc" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1070475926800/1070475926801" />
<node concept="3zFVjK" id="5NAQwIkRNr9" role="3zH0cK">
<node concept="3clFbS" id="5NAQwIkRNra" role="2VODD2">
<node concept="3clFbF" id="5NAQwIkRNrb" role="3cqZAp">
<node concept="2OqwBi" id="5NAQwIkRNrc" role="3clFbG">
<node concept="30H73N" id="5NAQwIkRNrd" role="2Oq$k0" />
<node concept="3TrcHB" id="5NAQwIkRNre" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="10Nm6u" id="5NAQwIkRNrf" role="37wK5m">
<node concept="29HgVG" id="5NAQwIkSclR" role="lGtFl">
<node concept="3NFfHV" id="5NAQwIkScxL" role="3NFExx">
<node concept="3clFbS" id="5NAQwIkScxM" role="2VODD2">
<node concept="3clFbF" id="5NAQwIkScKP" role="3cqZAp">
<node concept="2OqwBi" id="5NAQwIkScVJ" role="3clFbG">
<node concept="30H73N" id="5NAQwIkScKO" role="2Oq$k0" />
<node concept="3TrEf2" id="5NAQwIkSdyk" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:5NAQwIkRIYU" resolve="list" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3aamgX" id="1pt0VTMwUQ$" role="3acgRq">
<ref role="30HIoZ" to="5j4j:6$jH9oLmYJ_" resolve="Value" />
<node concept="30G5F_" id="3ec9Qj4MejB" role="30HLyM">

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<language namespace="jetbrains.mps.logic" uuid="35320f26-77cb-4c55-be9f-a97a27770af1" languageVersion="0" moduleVersion="0">
<language namespace="jetbrains.mps.logic" uuid="35320f26-77cb-4c55-be9f-a97a27770af1" languageVersion="1" moduleVersion="0">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="languageModels" />
@ -93,19 +93,30 @@
<language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
<language slang="l:daafa647-f1f7-4b0b-b096-69cd7c8408c0:jetbrains.mps.baseLanguage.regexp" version="0" />
<language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
<language slang="l:df345b11-b8c7-4213-ac66-48d2a9b75d88:jetbrains.mps.baseLanguageInternal" version="0" />
<language slang="l:aee9cad2-acd4-4608-aef2-0004f6a1cdbd:jetbrains.mps.lang.actions" version="4" />
<language slang="l:af65afd8-f0dd-4942-87d9-63a55f2a9db1:jetbrains.mps.lang.behavior" version="1" />
<language slang="l:fe9d76d7-5809-45c9-ae28-a40915b4d6ff:jetbrains.mps.lang.checkedName" version="0" />
<language slang="l:3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1:jetbrains.mps.lang.constraints" version="4" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="1" />
<language slang="l:7fa12e9c-b949-4976-b4fa-19accbc320b4:jetbrains.mps.lang.dataFlow" version="1" />
<language slang="l:f4ad079d-bc71-4ffb-9600-9328705cf998:jetbrains.mps.lang.descriptor" version="0" />
<language slang="l:18bc6592-03a6-4e29-a83a-7ff23bde13ba:jetbrains.mps.lang.editor" version="11" />
<language slang="l:64d34fcd-ad02-4e73-aff8-a581124c2e30:jetbrains.mps.lang.findUsages" version="0" />
<language slang="l:b401a680-8325-4110-8fd3-84331ff25bef:jetbrains.mps.lang.generator" version="0" />
<language slang="l:d7706f63-9be2-479c-a3da-ae92af1e64d5:jetbrains.mps.lang.generator.generationContext" version="0" />
<language slang="l:d7a92d38-f7db-40d0-8431-763b0c3c9f20:jetbrains.mps.lang.intentions" version="0" />
<language slang="l:90746344-04fd-4286-97d5-b46ae6a81709:jetbrains.mps.lang.migration" version="0" />
<language slang="l:d4615e3b-d671-4ba9-af01-2b78369b0ba7:jetbrains.mps.lang.pattern" version="1" />
<language slang="l:28f9e497-3b42-4291-aeba-0a1039153ab1:jetbrains.mps.lang.plugin" version="2" />
<language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="0" />
<language slang="l:3ecd7c84-cde3-45de-886c-135ecc69b742:jetbrains.mps.lang.refactoring" version="0" />
<language slang="l:982eb8df-2c96-4bd7-9963-11712ea622e5:jetbrains.mps.lang.resources" version="2" />
<language slang="l:0eddeefa-c2d6-4437-bc2c-de50fd4ce470:jetbrains.mps.lang.script" version="0" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="8" />
<language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="5" />
<language slang="l:b83431fe-5c8f-40bc-8a36-65e25f4dd253:jetbrains.mps.lang.textGen" version="1" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:7a5dda62-9140-4668-ab76-d5ed1746f2b2:jetbrains.mps.lang.typesystem" version="1" />
</languageVersions>

View File

@ -309,7 +309,7 @@
</node>
<node concept="13h7C7" id="7FFmDVAL750">
<property role="3GE5qa" value="treeform" />
<ref role="13h7C2" to="5j4j:6$jH9oLmYC_" resolve="Compound" />
<ref role="13h7C2" to="5j4j:6$jH9oLmYC_" resolve="TermNode" />
<node concept="13hLZK" id="7FFmDVAL751" role="13h7CW">
<node concept="3clFbS" id="7FFmDVAL752" role="2VODD2" />
</node>

View File

@ -675,7 +675,7 @@
<node concept="PKFIW" id="6dP_abdQqhT">
<property role="TrG5h" value="Node_Inspector" />
<property role="3GE5qa" value="treeform" />
<ref role="1XX52x" to="5j4j:6$jH9oLmYC_" resolve="Compound" />
<ref role="1XX52x" to="5j4j:6$jH9oLmYC_" resolve="TermNode" />
<node concept="3EZMnI" id="6dP_abdQqoF" role="2wV5jI">
<node concept="3F0ifn" id="6dP_abdR3F1" role="3EZMnx">
<property role="3F0ifm" value="show as:" />
@ -709,7 +709,7 @@
</node>
<node concept="24kQdi" id="6dP_abdQWZZ">
<property role="3GE5qa" value="treeform" />
<ref role="1XX52x" to="5j4j:6$jH9oLmYC_" resolve="Compound" />
<ref role="1XX52x" to="5j4j:6$jH9oLmYC_" resolve="TermNode" />
<node concept="PMmxH" id="6dP_abdQXdF" role="6VMZX">
<ref role="PMmxG" node="6dP_abdQqhT" resolve="Node_Inspector" />
</node>
@ -771,13 +771,15 @@
<node concept="1bVj0M" id="kTK1BfvrS6" role="23t8la">
<node concept="3clFbS" id="kTK1BfvrS7" role="1bW5cS">
<node concept="3clFbF" id="kTK1BfvrS8" role="3cqZAp">
<node concept="2OqwBi" id="kTK1BfvrS9" role="3clFbG">
<node concept="37vLTw" id="kTK1BfvrSa" role="2Oq$k0">
<ref role="3cqZAo" node="kTK1BfvrSd" resolve="it" />
</node>
<node concept="1mIQ4w" id="kTK1BfvrSb" role="2OqNvi">
<node concept="chp4Y" id="kTK1BfvrSc" role="cj9EA">
<ref role="cht4Q" to="5j4j:6$jH9oLmYEJ" resolve="ChildRole" />
<node concept="3fqX7Q" id="428_4iY4VN7" role="3clFbG">
<node concept="2OqwBi" id="428_4iY4VN9" role="3fr31v">
<node concept="37vLTw" id="428_4iY4VNa" role="2Oq$k0">
<ref role="3cqZAo" node="kTK1BfvrSd" resolve="it" />
</node>
<node concept="1mIQ4w" id="428_4iY4VNb" role="2OqNvi">
<node concept="chp4Y" id="428_4iY4Wko" role="cj9EA">
<ref role="cht4Q" to="5j4j:6$jH9oLmYI0" resolve="ValueRole" />
</node>
</node>
</node>
</node>
@ -809,11 +811,13 @@
<node concept="107P5z" id="kTK1BfuVyT" role="12AuX0">
<node concept="3clFbS" id="kTK1BfuVyU" role="2VODD2">
<node concept="3clFbF" id="kTK1BfuVyV" role="3cqZAp">
<node concept="2OqwBi" id="kTK1BfuVyW" role="3clFbG">
<node concept="12_Ws6" id="kTK1BfuVyX" role="2Oq$k0" />
<node concept="1mIQ4w" id="kTK1BfuVyY" role="2OqNvi">
<node concept="chp4Y" id="kTK1BfuVyZ" role="cj9EA">
<ref role="cht4Q" to="5j4j:6$jH9oLmYEJ" resolve="ChildRole" />
<node concept="3fqX7Q" id="428_4iY4X3P" role="3clFbG">
<node concept="2OqwBi" id="428_4iY4X3R" role="3fr31v">
<node concept="12_Ws6" id="428_4iY4X3S" role="2Oq$k0" />
<node concept="1mIQ4w" id="428_4iY4X3T" role="2OqNvi">
<node concept="chp4Y" id="428_4iY4Xta" role="cj9EA">
<ref role="cht4Q" to="5j4j:6$jH9oLmYI0" resolve="ValueRole" />
</node>
</node>
</node>
</node>
@ -824,19 +828,6 @@
<property role="3F0ifm" value="" />
<property role="ilYzB" value="&lt;…&gt;" />
</node>
<node concept="4$FPG" id="kTK1BfuVz1" role="4_6I_">
<node concept="3clFbS" id="kTK1BfuVz2" role="2VODD2">
<node concept="3clFbF" id="kTK1BfuVz3" role="3cqZAp">
<node concept="2ShNRf" id="kTK1BfuVz4" role="3clFbG">
<node concept="2fJWfE" id="kTK1BfuVz5" role="2ShVmc">
<node concept="3Tqbb2" id="kTK1BfuVz6" role="3zrR0E">
<ref role="ehGHo" to="5j4j:6$jH9oLmYEJ" resolve="ChildRole" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3F0ifn" id="kTK1BfuVz7" role="3EZMnx">
@ -2268,5 +2259,32 @@
<property role="TrG5h" value="EXPRESSION" />
</node>
</node>
<node concept="24kQdi" id="5NAQwIkRIYW">
<property role="3GE5qa" value="role" />
<ref role="1XX52x" to="5j4j:5NAQwIkRIXT" resolve="ListRole" />
<node concept="3EZMnI" id="5NAQwIkRIYY" role="2wV5jI">
<node concept="3F0A7n" id="5NAQwIkRIYZ" role="3EZMnx">
<ref role="1k5W1q" to="tpen:hgVSdfU" resolve="StringLiteral" />
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<node concept="34QqEe" id="5NAQwIkRIZ0" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="5NAQwIkRIZ1" role="3EZMnx">
<property role="3F0ifm" value=":" />
<ref role="1k5W1q" to="tpen:hF$iUjy" resolve="Operator" />
<node concept="11L4FC" id="5NAQwIkRIZ2" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F1sOY" id="5NAQwIkSl2c" role="3EZMnx">
<ref role="1NtTu8" to="5j4j:5NAQwIkRIYU" resolve="list" />
</node>
<node concept="l2Vlx" id="5NAQwIkRIZa" role="2iSdaV" />
<node concept="lj46D" id="5NAQwIkRIZb" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
</node>
</model>

View File

@ -0,0 +1,501 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:43d4629d-ce89-487f-b335-2aac72284228(jetbrains.mps.logic.migration)">
<persistence version="9" />
<languages>
<use id="90746344-04fd-4286-97d5-b46ae6a81709" name="jetbrains.mps.lang.migration" version="0" />
<use id="28f9e497-3b42-4291-aeba-0a1039153ab1" name="jetbrains.mps.lang.plugin" version="2" />
<use id="d4615e3b-d671-4ba9-af01-2b78369b0ba7" name="jetbrains.mps.lang.pattern" version="1" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports>
<import index="c17a" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)" />
<import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" />
<import index="mhbf" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)" />
<import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" />
<import index="mte5" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.ide.findusages.model.scopes(MPS.Core/)" />
<import index="mk8z" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.progress(MPS.Core/)" />
<import index="5j4j" ref="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
<import index="slm6" ref="90746344-04fd-4286-97d5-b46ae6a81709/r:52a3d974-bd4f-4651-ba6e-a2de5e336d95(jetbrains.mps.lang.migration/jetbrains.mps.lang.migration.methods)" implicit="true" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="ng" index="2tJIrI" />
<concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
<child id="1154032183016" name="body" index="2LFqv$" />
</concept>
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
<child id="1197027771414" name="operand" index="2Oq$k0" />
<child id="1197027833540" name="operation" index="2OqNvi" />
</concept>
<concept id="1145552977093" name="jetbrains.mps.baseLanguage.structure.GenericNewExpression" flags="nn" index="2ShNRf">
<child id="1145553007750" name="creator" index="2ShVmc" />
</concept>
<concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
</concept>
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
<child id="1068431790190" name="initializer" index="33vP2m" />
</concept>
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
<concept id="1225271177708" name="jetbrains.mps.baseLanguage.structure.StringType" flags="in" index="17QB3L" />
<concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
<child id="5680397130376446158" name="type" index="1tU5fm" />
</concept>
<concept id="1068580123132" name="jetbrains.mps.baseLanguage.structure.BaseMethodDeclaration" flags="ng" index="3clF44">
<child id="1068580123133" name="returnType" index="3clF45" />
<child id="1068580123134" name="parameter" index="3clF46" />
<child id="1068580123135" name="body" index="3clF47" />
</concept>
<concept id="1068580123152" name="jetbrains.mps.baseLanguage.structure.EqualsExpression" flags="nn" index="3clFbC" />
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
<child id="1068580123156" name="expression" index="3clFbG" />
</concept>
<concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
<child id="1068580123160" name="condition" index="3clFbw" />
<child id="1068580123161" name="ifTrue" index="3clFbx" />
</concept>
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
<child id="1068581517665" name="statement" index="3cqZAp" />
</concept>
<concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
<property id="1068580123138" name="value" index="3clFbU" />
</concept>
<concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
<property id="1068580320021" name="value" index="3cmrfH" />
</concept>
<concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
</concept>
<concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
<child id="1068499141038" name="actualArgument" index="37wK5m" />
</concept>
<concept id="1212685548494" name="jetbrains.mps.baseLanguage.structure.ClassCreator" flags="nn" index="1pGfFk" />
<concept id="1107461130800" name="jetbrains.mps.baseLanguage.structure.Classifier" flags="ng" index="3pOWGL">
<child id="5375687026011219971" name="member" index="jymVt" unordered="true" />
</concept>
<concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
<reference id="1107535924139" name="classifier" index="3uigEE" />
</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" />
</concept>
<concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
<child id="1178549979242" name="visibility" index="1B3o_S" />
</concept>
<concept id="1144226303539" name="jetbrains.mps.baseLanguage.structure.ForeachStatement" flags="nn" index="1DcWWT">
<child id="1144226360166" name="iterable" index="1DdaDG" />
</concept>
<concept id="1144230876926" name="jetbrains.mps.baseLanguage.structure.AbstractForStatement" flags="nn" index="1DupvO">
<child id="1144230900587" name="variable" index="1Duv9x" />
</concept>
<concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
<concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
</language>
<language id="c7d5b9dd-a05f-4be2-bc73-f2e16994cc67" name="jetbrains.mps.baseLanguage.lightweightdsl">
<concept id="8880393040217246788" name="jetbrains.mps.baseLanguage.lightweightdsl.structure.MethodParameterInstance" flags="ig" index="ffn8J">
<reference id="8880393040217294897" name="decl" index="ffrpq" />
</concept>
<concept id="3751132065236767083" name="jetbrains.mps.baseLanguage.lightweightdsl.structure.DependentTypeInstance" flags="ig" index="q3mfm">
<reference id="3751132065236767084" name="decl" index="q3mfh" />
<reference id="9097849371505568270" name="point" index="1QQUv3" />
</concept>
<concept id="3751132065236767060" name="jetbrains.mps.baseLanguage.lightweightdsl.structure.MethodInstance" flags="ig" index="q3mfD">
<reference id="19209059688387895" name="decl" index="2VtyIY" />
</concept>
<concept id="6478870542308708689" name="jetbrains.mps.baseLanguage.lightweightdsl.structure.PropertyInstance" flags="ig" index="3tT0cZ">
<reference id="8585153554445465961" name="decl" index="25KYV2" />
</concept>
<concept id="6478870542308703666" name="jetbrains.mps.baseLanguage.lightweightdsl.structure.MemberPlaceholder" flags="ng" index="3tTeZs">
<property id="6478870542308703667" name="caption" index="3tTeZt" />
<reference id="6478870542308703669" name="decl" index="3tTeZr" />
</concept>
<concept id="6478870542308871875" name="jetbrains.mps.baseLanguage.lightweightdsl.structure.BooleanPropertyInstance" flags="ig" index="3tYpMH">
<property id="6478870542308871876" name="value" index="3tYpME" />
</concept>
<concept id="6478870542308871428" name="jetbrains.mps.baseLanguage.lightweightdsl.structure.StringPropertyInstance" flags="ig" index="3tYpXE">
<property id="6478870542308871429" name="value" index="3tYpXF" />
</concept>
</language>
<language id="3a13115c-633c-4c5c-bbcc-75c4219e9555" name="jetbrains.mps.lang.quotation">
<concept id="5455284157994012186" name="jetbrains.mps.lang.quotation.structure.NodeBuilderInitLink" flags="ng" index="2pIpSj">
<reference id="5455284157994012188" name="link" index="2pIpSl" />
</concept>
<concept id="5455284157993911077" name="jetbrains.mps.lang.quotation.structure.NodeBuilderInitProperty" flags="ng" index="2pJxcG">
<reference id="5455284157993911078" name="property" index="2pJxcJ" />
</concept>
<concept id="5455284157993911097" name="jetbrains.mps.lang.quotation.structure.NodeBuilderInitPart" flags="ng" index="2pJxcK">
<child id="5455284157993911094" name="expression" index="2pJxcZ" />
</concept>
<concept id="5455284157993863837" name="jetbrains.mps.lang.quotation.structure.NodeBuilder" flags="nn" index="2pJPEk">
<child id="5455284157993863838" name="quotedNode" index="2pJPEn" />
</concept>
<concept id="5455284157993863840" name="jetbrains.mps.lang.quotation.structure.NodeBuilderNode" flags="nn" index="2pJPED">
<reference id="5455284157993910961" name="concept" index="2pJxaS" />
<child id="5455284157993911099" name="values" index="2pJxcM" />
</concept>
<concept id="8182547171709752110" name="jetbrains.mps.lang.quotation.structure.NodeBuilderExpression" flags="nn" index="36biLy">
<child id="8182547171709752112" name="expression" index="36biLW" />
</concept>
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
<concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
<reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
</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" />
</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="2644386474300074836" name="jetbrains.mps.lang.smodel.structure.ConceptIdRefExpression" flags="nn" index="35c_gC">
<reference id="2644386474300074837" name="conceptDeclaration" index="35c_gD" />
</concept>
<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="1140131837776" name="jetbrains.mps.lang.smodel.structure.Node_ReplaceWithAnotherOperation" flags="nn" index="1P9Npp">
<child id="1140131861877" name="replacementNode" index="1P9ThW" />
</concept>
<concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI">
<property id="1238684351431" name="asCast" index="1BlNFB" />
</concept>
<concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
<reference id="1138405853777" name="concept" index="ehGHo" />
</concept>
<concept id="1138056022639" name="jetbrains.mps.lang.smodel.structure.SPropertyAccess" flags="nn" index="3TrcHB">
<reference id="1138056395725" name="property" index="3TsBF5" />
</concept>
<concept id="1138056282393" name="jetbrains.mps.lang.smodel.structure.SLinkListAccess" flags="nn" index="3Tsc0h">
<reference id="1138056546658" name="link" index="3TtcxE" />
</concept>
<concept id="1228341669568" name="jetbrains.mps.lang.smodel.structure.Node_DetachOperation" flags="nn" index="3YRAZt" />
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
<language id="90746344-04fd-4286-97d5-b46ae6a81709" name="jetbrains.mps.lang.migration">
<concept id="8352104482584315555" name="jetbrains.mps.lang.migration.structure.MigrationScript" flags="ig" index="3SyAh_">
<property id="5820409521797704727" name="fromVersion" index="qMTe8" />
</concept>
</language>
<language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
<concept id="540871147943773365" name="jetbrains.mps.baseLanguage.collections.structure.SingleArgumentSequenceOperation" flags="nn" index="25WWJ4">
<child id="540871147943773366" name="argument" index="25WWJ7" />
</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="1237721394592" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerCreator" flags="nn" index="HWqM0">
<child id="1237721435807" name="elementType" index="HW$YZ" />
<child id="1237731803878" name="copyFrom" index="I$8f6" />
</concept>
<concept id="1160600644654" name="jetbrains.mps.baseLanguage.collections.structure.ListCreatorWithInit" flags="nn" index="Tc6Ow" />
<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" />
</language>
</registry>
<node concept="3SyAh_" id="5NAQwIkSyC5">
<property role="qMTe8" value="0" />
<property role="TrG5h" value="Extract_ListRole_from_ChildRole" />
<node concept="3Tm1VV" id="5NAQwIkSyC6" role="1B3o_S" />
<node concept="3tTeZs" id="5NAQwIkSyC7" 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="5NAQwIkSyC8" role="jymVt">
<property role="3tTeZt" value="&lt;no required data&gt;" />
<ref role="3tTeZr" to="slm6:3A3gNhf1WPI" resolve="requires data" />
</node>
<node concept="3tTeZs" id="5NAQwIkSyC9" role="jymVt">
<property role="3tTeZt" value="&lt;no produced data&gt;" />
<ref role="3tTeZr" to="slm6:536fTXa4WHO" resolve="produces data" />
</node>
<node concept="2tJIrI" id="5NAQwIkSyCa" role="jymVt" />
<node concept="3tYpMH" id="5NAQwIkSz2Q" role="jymVt">
<property role="TrG5h" value="isRerunnable" />
<property role="3tYpME" value="true" />
<ref role="25KYV2" to="slm6:1JWcQ2VeWIs" resolve="isRerunnable" />
<node concept="3Tm1VV" id="5NAQwIkSz2S" role="1B3o_S" />
<node concept="10P_77" id="5NAQwIkSz2T" role="1tU5fm" />
</node>
<node concept="3tYpXE" id="5NAQwIkSz3x" role="jymVt">
<property role="TrG5h" value="description" />
<property role="3tYpXF" value="Extract ChildRole with List to ListRole" />
<ref role="25KYV2" to="slm6:1_lSsE3RFpE" resolve="description" />
<node concept="3Tm1VV" id="5NAQwIkSz3z" role="1B3o_S" />
<node concept="17QB3L" id="5NAQwIkSz3$" role="1tU5fm" />
</node>
<node concept="q3mfD" id="5NAQwIkSyCd" role="jymVt">
<property role="TrG5h" value="execute" />
<ref role="2VtyIY" to="slm6:4ubqdNOF9cA" resolve="execute" />
<node concept="3Tm1VV" id="5NAQwIkSyCf" role="1B3o_S" />
<node concept="3clFbS" id="5NAQwIkSyCh" role="3clF47">
<node concept="3cpWs8" id="6DOfTm$AbnK" role="3cqZAp">
<node concept="3cpWsn" id="6DOfTm$AbnL" role="3cpWs9">
<property role="TrG5h" value="instances" />
<node concept="_YKpA" id="6DOfTm$AbnM" role="1tU5fm">
<node concept="3uibUv" id="6DOfTm$AbnN" role="_ZDj9">
<ref role="3uigEE" to="mhbf:~SNode" resolve="SNode" />
</node>
</node>
<node concept="2ShNRf" id="6DOfTm$AbnO" role="33vP2m">
<node concept="Tc6Ow" id="6DOfTm$AbnP" role="2ShVmc">
<node concept="3uibUv" id="6DOfTm$AbnQ" role="HW$YZ">
<ref role="3uigEE" to="mhbf:~SNode" resolve="SNode" />
</node>
<node concept="2OqwBi" id="6DOfTm$AbnR" role="I$8f6">
<node concept="2YIFZM" id="6DOfTm$AbnS" role="2Oq$k0">
<ref role="37wK5l" to="lui2:~FindUsagesFacade.getInstance():org.jetbrains.mps.openapi.module.FindUsagesFacade" resolve="getInstance" />
<ref role="1Pybhc" to="lui2:~FindUsagesFacade" resolve="FindUsagesFacade" />
</node>
<node concept="liA8E" id="6DOfTm$AbnT" role="2OqNvi">
<ref role="37wK5l" to="lui2:~FindUsagesFacade.findInstances(org.jetbrains.mps.openapi.module.SearchScope,java.util.Set,boolean,org.jetbrains.mps.openapi.util.ProgressMonitor):java.util.Set" resolve="findInstances" />
<node concept="2ShNRf" id="6DOfTm$AbnU" role="37wK5m">
<node concept="1pGfFk" id="6DOfTm$AbnV" role="2ShVmc">
<ref role="37wK5l" to="mte5:~ModulesScope.&lt;init&gt;(org.jetbrains.mps.openapi.module.SModule...)" resolve="ModulesScope" />
<node concept="37vLTw" id="6DOfTm$AbnW" role="37wK5m">
<ref role="3cqZAo" node="5NAQwIkSyCj" resolve="m" />
</node>
</node>
</node>
<node concept="2YIFZM" id="6DOfTm$AbnX" role="37wK5m">
<ref role="1Pybhc" to="33ny:~Collections" resolve="Collections" />
<ref role="37wK5l" to="33ny:~Collections.singleton(java.lang.Object):java.util.Set" resolve="singleton" />
<node concept="35c_gC" id="6DOfTm$AbnY" role="37wK5m">
<ref role="35c_gD" to="5j4j:6$jH9oLmYEJ" resolve="ChildRole" />
</node>
</node>
<node concept="3clFbT" id="6DOfTm$AbnZ" role="37wK5m">
<property role="3clFbU" value="false" />
</node>
<node concept="2ShNRf" id="6DOfTm$Abo0" role="37wK5m">
<node concept="1pGfFk" id="6DOfTm$Abo1" role="2ShVmc">
<ref role="37wK5l" to="mk8z:~EmptyProgressMonitor.&lt;init&gt;()" resolve="EmptyProgressMonitor" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1DcWWT" id="5NAQwIkSCCc" role="3cqZAp">
<node concept="3clFbS" id="5NAQwIkSCCf" role="2LFqv$">
<node concept="3cpWs8" id="428_4iYaiuN" role="3cqZAp">
<node concept="3cpWsn" id="428_4iYaiuO" role="3cpWs9">
<property role="TrG5h" value="cr" />
<node concept="3Tqbb2" id="428_4iYaiuL" role="1tU5fm">
<ref role="ehGHo" to="5j4j:6$jH9oLmYEJ" resolve="ChildRole" />
</node>
<node concept="1PxgMI" id="428_4iYaiuP" role="33vP2m">
<property role="1BlNFB" value="true" />
<node concept="chp4Y" id="428_4iYaiuQ" role="3oSUPX">
<ref role="cht4Q" to="5j4j:6$jH9oLmYEJ" resolve="ChildRole" />
</node>
<node concept="37vLTw" id="428_4iYaiuR" role="1m5AlR">
<ref role="3cqZAo" node="5NAQwIkSCCg" resolve="inst" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="5NAQwIkSQga" role="3cqZAp">
<node concept="3cpWsn" id="5NAQwIkSQgb" role="3cpWs9">
<property role="TrG5h" value="contents" />
<node concept="2I9FWS" id="5NAQwIkSQg4" role="1tU5fm">
<ref role="2I9WkF" to="5j4j:5lJXKARS0" resolve="TreeForm" />
</node>
<node concept="2OqwBi" id="5NAQwIkSQgc" role="33vP2m">
<node concept="37vLTw" id="428_4iYaiuS" role="2Oq$k0">
<ref role="3cqZAo" node="428_4iYaiuO" resolve="cr" />
</node>
<node concept="3Tsc0h" id="5NAQwIkSQgg" role="2OqNvi">
<ref role="3TtcxE" to="5j4j:6$jH9oLmYFB" resolve="contents" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="428_4iYakSQ" role="3cqZAp">
<node concept="3cpWsn" id="428_4iYakSR" role="3cpWs9">
<property role="TrG5h" value="attrsCopy" />
<node concept="2I9FWS" id="428_4iYakSJ" role="1tU5fm">
<ref role="2I9WkF" to="tpck:4uZwTti3_$T" resolve="Attribute" />
</node>
<node concept="2ShNRf" id="428_4iYb8nV" role="33vP2m">
<node concept="Tc6Ow" id="428_4iYb8Cp" role="2ShVmc">
<node concept="2OqwBi" id="428_4iYakSS" role="I$8f6">
<node concept="37vLTw" id="428_4iYakST" role="2Oq$k0">
<ref role="3cqZAo" node="428_4iYaiuO" resolve="cr" />
</node>
<node concept="3Tsc0h" id="428_4iYakSU" role="2OqNvi">
<ref role="3TtcxE" to="tpck:4uZwTti3__2" resolve="smodelAttribute" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="5NAQwIkSEDe" role="3cqZAp">
<node concept="3clFbS" id="5NAQwIkSEDg" role="3clFbx">
<node concept="3cpWs8" id="428_4iYb9IT" role="3cqZAp">
<node concept="3cpWsn" id="428_4iYb9IU" role="3cpWs9">
<property role="TrG5h" value="lr" />
<node concept="3Tqbb2" id="428_4iYb9IN" role="1tU5fm">
<ref role="ehGHo" to="5j4j:5NAQwIkRIXT" resolve="ListRole" />
</node>
<node concept="2OqwBi" id="428_4iYb9IV" role="33vP2m">
<node concept="37vLTw" id="428_4iYb9IW" role="2Oq$k0">
<ref role="3cqZAo" node="5NAQwIkSCCg" resolve="inst" />
</node>
<node concept="1P9Npp" id="428_4iYb9IX" role="2OqNvi">
<node concept="2pJPEk" id="428_4iYb9IY" role="1P9ThW">
<node concept="2pJPED" id="428_4iYb9IZ" role="2pJPEn">
<ref role="2pJxaS" to="5j4j:5NAQwIkRIXT" resolve="ListRole" />
<node concept="2pJxcG" id="428_4iYb9J0" role="2pJxcM">
<ref role="2pJxcJ" to="tpck:h0TrG11" resolve="name" />
<node concept="2OqwBi" id="428_4iYb9J1" role="2pJxcZ">
<node concept="37vLTw" id="428_4iYb9J2" role="2Oq$k0">
<ref role="3cqZAo" node="428_4iYaiuO" resolve="cr" />
</node>
<node concept="3TrcHB" id="428_4iYb9J3" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
<node concept="2pIpSj" id="428_4iYb9J4" role="2pJxcM">
<ref role="2pIpSl" to="5j4j:5NAQwIkRIYU" resolve="list" />
<node concept="36biLy" id="428_4iYb9J5" role="2pJxcZ">
<node concept="2OqwBi" id="428_4iYb9J6" role="36biLW">
<node concept="1PxgMI" id="428_4iYb9J7" role="2Oq$k0">
<property role="1BlNFB" value="true" />
<node concept="chp4Y" id="428_4iYb9J8" role="3oSUPX">
<ref role="cht4Q" to="5j4j:1OShD0HAY6y" resolve="List" />
</node>
<node concept="2OqwBi" id="428_4iYb9J9" role="1m5AlR">
<node concept="37vLTw" id="428_4iYb9Ja" role="2Oq$k0">
<ref role="3cqZAo" node="5NAQwIkSQgb" resolve="contents" />
</node>
<node concept="1uHKPH" id="428_4iYb9Jb" role="2OqNvi" />
</node>
</node>
<node concept="3YRAZt" id="428_4iYb9Jc" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1DcWWT" id="428_4iYbbQV" role="3cqZAp">
<node concept="3clFbS" id="428_4iYbbQY" role="2LFqv$">
<node concept="3clFbF" id="5NAQwIkSYoL" role="3cqZAp">
<node concept="2OqwBi" id="428_4iYbizq" role="3clFbG">
<node concept="2OqwBi" id="428_4iYbgtN" role="2Oq$k0">
<node concept="37vLTw" id="428_4iYb9Jd" role="2Oq$k0">
<ref role="3cqZAo" node="428_4iYb9IU" resolve="lr" />
</node>
<node concept="3Tsc0h" id="428_4iYbgYz" role="2OqNvi">
<ref role="3TtcxE" to="tpck:4uZwTti3__2" resolve="smodelAttribute" />
</node>
</node>
<node concept="TSZUe" id="428_4iYbmog" role="2OqNvi">
<node concept="2OqwBi" id="428_4iYbmNM" role="25WWJ7">
<node concept="37vLTw" id="428_4iYbmzf" role="2Oq$k0">
<ref role="3cqZAo" node="428_4iYbbQZ" resolve="attr" />
</node>
<node concept="3YRAZt" id="428_4iYbnji" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="428_4iYbbQZ" role="1Duv9x">
<property role="TrG5h" value="attr" />
<node concept="3Tqbb2" id="428_4iYbffS" role="1tU5fm">
<ref role="ehGHo" to="tpck:4uZwTti3_$T" resolve="Attribute" />
</node>
</node>
<node concept="37vLTw" id="428_4iYbbR4" role="1DdaDG">
<ref role="3cqZAo" node="428_4iYakSR" resolve="attrsCopy" />
</node>
</node>
</node>
<node concept="1Wc70l" id="5NAQwIkSPTZ" role="3clFbw">
<node concept="2OqwBi" id="5NAQwIkSWZp" role="3uHU7w">
<node concept="2OqwBi" id="5NAQwIkSSqx" role="2Oq$k0">
<node concept="2OqwBi" id="428_4iYajHV" role="2Oq$k0">
<node concept="37vLTw" id="428_4iYajHW" role="2Oq$k0">
<ref role="3cqZAo" node="428_4iYaiuO" resolve="cr" />
</node>
<node concept="3Tsc0h" id="428_4iYajHX" role="2OqNvi">
<ref role="3TtcxE" to="5j4j:6$jH9oLmYFB" resolve="contents" />
</node>
</node>
<node concept="1uHKPH" id="5NAQwIkSU_N" role="2OqNvi" />
</node>
<node concept="1mIQ4w" id="5NAQwIkSXD_" role="2OqNvi">
<node concept="chp4Y" id="5NAQwIkSXYn" role="cj9EA">
<ref role="cht4Q" to="5j4j:1OShD0HAY6y" resolve="List" />
</node>
</node>
</node>
<node concept="3clFbC" id="5NAQwIkSOAD" role="3uHU7B">
<node concept="2OqwBi" id="5NAQwIkSI4O" role="3uHU7B">
<node concept="2OqwBi" id="428_4iYajkV" role="2Oq$k0">
<node concept="37vLTw" id="428_4iYajkW" role="2Oq$k0">
<ref role="3cqZAo" node="428_4iYaiuO" resolve="cr" />
</node>
<node concept="3Tsc0h" id="428_4iYajkX" role="2OqNvi">
<ref role="3TtcxE" to="5j4j:6$jH9oLmYFB" resolve="contents" />
</node>
</node>
<node concept="34oBXx" id="5NAQwIkSLUo" role="2OqNvi" />
</node>
<node concept="3cmrfG" id="5NAQwIkSOVN" role="3uHU7w">
<property role="3cmrfH" value="1" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="5NAQwIkSCCg" role="1Duv9x">
<property role="TrG5h" value="inst" />
<node concept="3Tqbb2" id="5NAQwIkSE5a" role="1tU5fm" />
</node>
<node concept="37vLTw" id="5NAQwIkSCCl" role="1DdaDG">
<ref role="3cqZAo" node="6DOfTm$AbnL" resolve="instances" />
</node>
</node>
</node>
<node concept="ffn8J" id="5NAQwIkSyCj" role="3clF46">
<property role="TrG5h" value="m" />
<ref role="ffrpq" to="slm6:7fCCGqboj9J" resolve="m" />
<node concept="3uibUv" id="5NAQwIkSyCi" role="1tU5fm">
<ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
</node>
</node>
<node concept="q3mfm" id="5NAQwIkSyCk" role="3clF45">
<ref role="q3mfh" to="slm6:4F5w8gPXEEe" />
<ref role="1QQUv3" node="5NAQwIkSyCd" resolve="execute" />
</node>
</node>
<node concept="3tTeZs" id="5NAQwIkSyCl" role="jymVt">
<property role="3tTeZt" value="&lt;no result checking&gt;" />
<ref role="3tTeZr" to="slm6:1JWcQ2VeXpD" resolve="check" />
</node>
</node>
</model>

View File

@ -82,7 +82,7 @@
</node>
</node>
<node concept="1TIwiD" id="6$jH9oLmYC_">
<property role="TrG5h" value="Compound" />
<property role="TrG5h" value="TermNode" />
<property role="3GE5qa" value="treeform" />
<property role="EcuMT" value="7571593955706137125" />
<ref role="1TJDcQ" node="5lJXKARS0" resolve="TreeForm" />
@ -365,5 +365,18 @@
<ref role="20lvS9" node="7E86$tKsl45" resolve="LogicalItem" />
</node>
</node>
<node concept="1TIwiD" id="5NAQwIkRIXT">
<property role="EcuMT" value="6694277639409954681" />
<property role="3GE5qa" value="role" />
<property role="TrG5h" value="ListRole" />
<ref role="1TJDcQ" node="6$jH9oLmYD_" resolve="Role" />
<node concept="1TJgyj" id="5NAQwIkRIYU" role="1TKVEi">
<property role="IQ2ns" value="6694277639409954746" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="list" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="1OShD0HAY6y" resolve="List" />
</node>
</node>
</model>

View File

@ -233,7 +233,7 @@
</node>
<node concept="1mIQ4w" id="6YPNC4OxCRo" role="2OqNvi">
<node concept="chp4Y" id="6YPNC4OxD1q" role="cj9EA">
<ref role="cht4Q" to="5j4j:6$jH9oLmYC_" resolve="Compound" />
<ref role="cht4Q" to="5j4j:6$jH9oLmYC_" resolve="TermNode" />
</node>
</node>
</node>
@ -365,6 +365,42 @@
<node concept="3clFbH" id="6YPNC4OxGRk" role="3cqZAp" />
</node>
</node>
<node concept="3eNFk2" id="428_4iY4YrU" role="3eNLev">
<node concept="3clFbS" id="428_4iY4YrW" role="3eOfB_">
<node concept="1Z5TYs" id="428_4iY4YLn" role="3cqZAp">
<node concept="mw_s8" id="428_4iY4YLo" role="1ZfhKB">
<node concept="2c44tf" id="428_4iY4YLp" role="mwGJk">
<node concept="3uibUv" id="428_4iY4YLq" role="2c44tc">
<ref role="3uigEE" to="6exd:6YPNC4OECgm" resolve="ListRole" />
</node>
</node>
</node>
<node concept="mw_s8" id="428_4iY4YLr" role="1ZfhK$">
<node concept="1Z2H0r" id="428_4iY4YLs" role="mwGJk">
<node concept="1YBJjd" id="428_4iY4YLt" role="1Z2MuG">
<ref role="1YBMHb" node="1pt0VTMFg5X" resolve="tfe" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="428_4iY4YMs" role="3cqZAp" />
</node>
<node concept="2OqwBi" id="428_4iY4Yzs" role="3eO9$A">
<node concept="2OqwBi" id="428_4iY4Yzt" role="2Oq$k0">
<node concept="1YBJjd" id="428_4iY4Yzu" role="2Oq$k0">
<ref role="1YBMHb" node="1pt0VTMFg5X" resolve="tfe" />
</node>
<node concept="3TrEf2" id="428_4iY4Yzv" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:6$jH9oLmVNm" resolve="root" />
</node>
</node>
<node concept="1mIQ4w" id="428_4iY4Yzw" role="2OqNvi">
<node concept="chp4Y" id="428_4iY4YEz" role="cj9EA">
<ref role="cht4Q" to="5j4j:5NAQwIkRIXT" resolve="ListRole" />
</node>
</node>
</node>
</node>
<node concept="3eNFk2" id="6YPNC4OxGRv" role="3eNLev">
<node concept="2OqwBi" id="6YPNC4OxHZZ" role="3eO9$A">
<node concept="2OqwBi" id="6YPNC4OxHgy" role="2Oq$k0">