Skip to content

Commit c1e389a

Browse files
committed
Provides language with an interface to mark variability points under variability management
1 parent 829da06 commit c1e389a

File tree

12 files changed

+572
-68
lines changed

12 files changed

+572
-68
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ The project does _not_ follow Semantic Versioning and the changes are documented
77

88
## January 2025
99

10+
### Added
11+
12+
- Added a language to accommodate variability management concepts and features. Initially it provides only an Interface to mark variation points.
13+
1014
### Fixed
1115

1216
- The copy and pasting of existing nodes was slightly improved.

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,11 @@ This package includes all things related to tracing. More info: [page 27 debugge
169169
| org.iets3.core.trace | It implements trace attributes (can be for example used in components). |
170170
| org.iets3.core.test | It is a language for trace testing. |
171171

172+
### variability
173+
| Name | Description |
174+
| ------------- | ------------- |
175+
| org.iets3.variability.artifacts.base | This language contains basic concepts and interfaces related to variability. |
176+
172177
## Devkits
173178

174179
The following devkits are available:

code/languages/org.iets3.opensource/.mps/modules.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
<modulePath path="$PROJECT_DIR$/languages/org.iets3.opensource.build.gentests/org.iets3.opensource.build.gentests.mpl" folder="_build" />
8080
<modulePath path="$PROJECT_DIR$/languages/org.iets3.req.core/org.iets3.req.core.mpl" folder="req" />
8181
<modulePath path="$PROJECT_DIR$/languages/org.iets3.req.plugin/org.iets3.req.plugin.msd" folder="req" />
82+
<modulePath path="$PROJECT_DIR$/languages/org.iets3.variability.artifacts.base/org.iets3.variability.artifacts.base.mpl" folder="variability" />
8283
<modulePath path="$PROJECT_DIR$/languages/test.iest3.component.attribute/test.iest3.component.attribute.mpl" folder="comp" />
8384
<modulePath path="$PROJECT_DIR$/languages/test.org.iets3.analysis.base.solvable/test.org.iets3.analysis.base.solvable.mpl" folder="analysis.test" />
8485
<modulePath path="$PROJECT_DIR$/languages/test.ts.expr.os.nix/test.ts.expr.os.nix.mpl" folder="expr.tests" />

code/languages/org.iets3.opensource/.mps/vcs.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
</option>
1212
</component>
1313
<component name="VcsDirectoryMappings">
14-
<mapping directory="$iets3.github.opensource.home$" vcs="Git" />
14+
<mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
1515
</component>
1616
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<model ref="r:3576c733-3dcf-4bb9-bec1-f35a123ae295(org.iets3.variability.artifacts.base.generator.templates@generator)">
3+
<persistence version="9" />
4+
<languages>
5+
<devkit ref="a2eb3a43-fcc2-4200-80dc-c60110c4862d(jetbrains.mps.devkit.templates)" />
6+
</languages>
7+
<imports>
8+
<import index="7c17" ref="r:1696fe6e-226e-4158-a6f2-3b9fa1ea7a02(org.iets3.variability.artifacts.base.structure)" />
9+
</imports>
10+
<registry>
11+
<language id="b401a680-8325-4110-8fd3-84331ff25bef" name="jetbrains.mps.lang.generator">
12+
<concept id="1095416546421" name="jetbrains.mps.lang.generator.structure.MappingConfiguration" flags="ig" index="bUwia" />
13+
</language>
14+
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
15+
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
16+
<property id="1169194664001" name="name" index="TrG5h" />
17+
</concept>
18+
</language>
19+
</registry>
20+
<node concept="bUwia" id="7B3y$vlfyYm">
21+
<property role="TrG5h" value="main" />
22+
</node>
23+
</model>
24+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<model ref="r:b827b941-aa66-4f79-b830-0e73f1e33465(org.iets3.variability.artifacts.base.behavior)">
3+
<persistence version="9" />
4+
<languages>
5+
<use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
6+
<use id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior" version="2" />
7+
<use id="f2801650-65d5-424e-bb1b-463a8781b786" name="jetbrains.mps.baseLanguage.javadoc" version="2" />
8+
<devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
9+
</languages>
10+
<imports>
11+
<import index="7c17" ref="r:1696fe6e-226e-4158-a6f2-3b9fa1ea7a02(org.iets3.variability.artifacts.base.structure)" implicit="true" />
12+
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
13+
</imports>
14+
<registry>
15+
<language id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior">
16+
<concept id="1225194240794" name="jetbrains.mps.lang.behavior.structure.ConceptBehavior" flags="ng" index="13h7C7">
17+
<reference id="1225194240799" name="concept" index="13h7C2" />
18+
<child id="1225194240805" name="method" index="13h7CS" />
19+
<child id="1225194240801" name="constructor" index="13h7CW" />
20+
</concept>
21+
<concept id="1225194413805" name="jetbrains.mps.lang.behavior.structure.ConceptConstructorDeclaration" flags="in" index="13hLZK" />
22+
<concept id="1225194472830" name="jetbrains.mps.lang.behavior.structure.ConceptMethodDeclaration" flags="ng" index="13i0hz">
23+
<property id="5864038008284099149" name="isStatic" index="2Ki8OM" />
24+
</concept>
25+
</language>
26+
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
27+
<concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
28+
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
29+
<child id="1197027771414" name="operand" index="2Oq$k0" />
30+
<child id="1197027833540" name="operation" index="2OqNvi" />
31+
</concept>
32+
<concept id="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
33+
<child id="1137022507850" name="body" index="2VODD2" />
34+
</concept>
35+
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
36+
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
37+
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
38+
</concept>
39+
<concept id="1068498886292" name="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" flags="ir" index="37vLTG" />
40+
<concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
41+
<child id="5680397130376446158" name="type" index="1tU5fm" />
42+
</concept>
43+
<concept id="1068580123132" name="jetbrains.mps.baseLanguage.structure.BaseMethodDeclaration" flags="ng" index="3clF44">
44+
<child id="1068580123133" name="returnType" index="3clF45" />
45+
<child id="1068580123134" name="parameter" index="3clF46" />
46+
<child id="1068580123135" name="body" index="3clF47" />
47+
</concept>
48+
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
49+
<child id="1068580123156" name="expression" index="3clFbG" />
50+
</concept>
51+
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
52+
<child id="1068581517665" name="statement" index="3cqZAp" />
53+
</concept>
54+
<concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
55+
<child id="1178549979242" name="visibility" index="1B3o_S" />
56+
</concept>
57+
<concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
58+
</language>
59+
<language id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures">
60+
<concept id="2524418899405758586" name="jetbrains.mps.baseLanguage.closures.structure.InferredClosureParameterDeclaration" flags="ig" index="gl6BB" />
61+
<concept id="1199569711397" name="jetbrains.mps.baseLanguage.closures.structure.ClosureLiteral" flags="nn" index="1bVj0M">
62+
<child id="1199569906740" name="parameter" index="1bW2Oz" />
63+
<child id="1199569916463" name="body" index="1bW5cS" />
64+
</concept>
65+
</language>
66+
<language id="f2801650-65d5-424e-bb1b-463a8781b786" name="jetbrains.mps.baseLanguage.javadoc">
67+
<concept id="5858074156537516430" name="jetbrains.mps.baseLanguage.javadoc.structure.ReturnBlockDocTag" flags="ng" index="x79VA">
68+
<property id="5858074156537516431" name="text" index="x79VB" />
69+
</concept>
70+
<concept id="6832197706140518104" name="jetbrains.mps.baseLanguage.javadoc.structure.DocMethodParameterReference" flags="ng" index="zr_55" />
71+
<concept id="6832197706140518103" name="jetbrains.mps.baseLanguage.javadoc.structure.BaseParameterReference" flags="ng" index="zr_5a">
72+
<reference id="6832197706140518108" name="param" index="zr_51" />
73+
</concept>
74+
<concept id="5349172909345501395" name="jetbrains.mps.baseLanguage.javadoc.structure.BaseDocComment" flags="ng" index="P$AiS">
75+
<child id="8465538089690331502" name="body" index="TZ5H$" />
76+
<child id="5383422241790532083" name="tags" index="3nqlJM" />
77+
</concept>
78+
<concept id="5349172909345532724" name="jetbrains.mps.baseLanguage.javadoc.structure.MethodDocComment" flags="ng" index="P$JXv" />
79+
<concept id="8465538089690881930" name="jetbrains.mps.baseLanguage.javadoc.structure.ParameterBlockDocTag" flags="ng" index="TUZQ0">
80+
<property id="8465538089690881934" name="text" index="TUZQ4" />
81+
<child id="6832197706140518123" name="parameter" index="zr_5Q" />
82+
</concept>
83+
<concept id="8465538089690331500" name="jetbrains.mps.baseLanguage.javadoc.structure.CommentLine" flags="ng" index="TZ5HA">
84+
<child id="8970989240999019149" name="part" index="1dT_Ay" />
85+
</concept>
86+
<concept id="8970989240999019143" name="jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart" flags="ng" index="1dT_AC">
87+
<property id="8970989240999019144" name="text" index="1dT_AB" />
88+
</concept>
89+
</language>
90+
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
91+
<concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
92+
<reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
93+
</concept>
94+
<concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
95+
<child id="1177027386292" name="conceptArgument" index="cj9EA" />
96+
</concept>
97+
<concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2" />
98+
<concept id="1138056282393" name="jetbrains.mps.lang.smodel.structure.SLinkListAccess" flags="nn" index="3Tsc0h">
99+
<reference id="1138056546658" name="link" index="3TtcxE" />
100+
</concept>
101+
</language>
102+
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
103+
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
104+
<child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
105+
</concept>
106+
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
107+
<property id="1169194664001" name="name" index="TrG5h" />
108+
</concept>
109+
</language>
110+
<language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
111+
<concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
112+
<child id="1204796294226" name="closure" index="23t8la" />
113+
</concept>
114+
<concept id="1235566554328" name="jetbrains.mps.baseLanguage.collections.structure.AnyOperation" flags="nn" index="2HwmR7" />
115+
</language>
116+
</registry>
117+
<node concept="13h7C7" id="7B3y$vlfFYQ">
118+
<ref role="13h7C2" to="7c17:7B3y$vlfDHq" resolve="IVariationPoint" />
119+
<node concept="13i0hz" id="7B3y$vlfFZt" role="13h7CS">
120+
<property role="2Ki8OM" value="true" />
121+
<property role="TrG5h" value="isVariationPoint" />
122+
<node concept="3Tm1VV" id="7B3y$vlfFZu" role="1B3o_S" />
123+
<node concept="10P_77" id="7B3y$vlfFZL" role="3clF45" />
124+
<node concept="3clFbS" id="7B3y$vlfFZw" role="3clF47">
125+
<node concept="3clFbF" id="7B3y$vlfJ38" role="3cqZAp">
126+
<node concept="2OqwBi" id="7B3y$vlfMnc" role="3clFbG">
127+
<node concept="2OqwBi" id="7B3y$vlfJdW" role="2Oq$k0">
128+
<node concept="37vLTw" id="7B3y$vlfJ37" role="2Oq$k0">
129+
<ref role="3cqZAo" node="7B3y$vlfJ17" resolve="node" />
130+
</node>
131+
<node concept="3Tsc0h" id="7B3y$vlfJt8" role="2OqNvi">
132+
<ref role="3TtcxE" to="tpck:4uZwTti3__2" resolve="smodelAttribute" />
133+
</node>
134+
</node>
135+
<node concept="2HwmR7" id="7B3y$vlfOMt" role="2OqNvi">
136+
<node concept="1bVj0M" id="7B3y$vlfOMv" role="23t8la">
137+
<node concept="3clFbS" id="7B3y$vlfOMw" role="1bW5cS">
138+
<node concept="3clFbF" id="7B3y$vlfOT4" role="3cqZAp">
139+
<node concept="2OqwBi" id="7B3y$vlfP5x" role="3clFbG">
140+
<node concept="37vLTw" id="7B3y$vlfOT3" role="2Oq$k0">
141+
<ref role="3cqZAo" node="7B3y$vlfOMx" resolve="it" />
142+
</node>
143+
<node concept="1mIQ4w" id="7B3y$vlfQ4$" role="2OqNvi">
144+
<node concept="chp4Y" id="7B3y$vlfQ9b" role="cj9EA">
145+
<ref role="cht4Q" to="7c17:7B3y$vlfDHq" resolve="IVariationPoint" />
146+
</node>
147+
</node>
148+
</node>
149+
</node>
150+
</node>
151+
<node concept="gl6BB" id="7B3y$vlfOMx" role="1bW2Oz">
152+
<property role="TrG5h" value="it" />
153+
<node concept="2jxLKc" id="7B3y$vlfOMy" role="1tU5fm" />
154+
</node>
155+
</node>
156+
</node>
157+
</node>
158+
</node>
159+
</node>
160+
<node concept="37vLTG" id="7B3y$vlfJ17" role="3clF46">
161+
<property role="TrG5h" value="queriedNode" />
162+
<node concept="3Tqbb2" id="7B3y$vlfJ16" role="1tU5fm" />
163+
</node>
164+
<node concept="P$JXv" id="7B3y$vlfQc1" role="lGtFl">
165+
<node concept="TZ5HA" id="7B3y$vlfQc2" role="TZ5H$">
166+
<node concept="1dT_AC" id="7B3y$vlfQc3" role="1dT_Ay">
167+
<property role="1dT_AB" value="IVariationPoint shall be implemented by any concept that expect that " />
168+
</node>
169+
</node>
170+
<node concept="TZ5HA" id="7B3y$vlfSNO" role="TZ5H$">
171+
<node concept="1dT_AC" id="7B3y$vlfSNP" role="1dT_Ay">
172+
<property role="1dT_AB" value="its variation should be managed by the variability framework. " />
173+
</node>
174+
</node>
175+
<node concept="TZ5HA" id="7B3y$vlfTC5" role="TZ5H$">
176+
<node concept="1dT_AC" id="7B3y$vlfTC6" role="1dT_Ay">
177+
<property role="1dT_AB" value="Some applications may need to know which concepts are managed by the framework," />
178+
</node>
179+
</node>
180+
<node concept="TZ5HA" id="7B3y$vlfUYl" role="TZ5H$">
181+
<node concept="1dT_AC" id="7B3y$vlfUYm" role="1dT_Ay">
182+
<property role="1dT_AB" value="and which ones shall be ignored. " />
183+
</node>
184+
</node>
185+
<node concept="TUZQ0" id="7B3y$vlfQc4" role="3nqlJM">
186+
<property role="TUZQ4" value="is any node in a language" />
187+
<node concept="zr_55" id="7B3y$vlfQc6" role="zr_5Q">
188+
<ref role="zr_51" node="7B3y$vlfJ17" resolve="node" />
189+
</node>
190+
</node>
191+
<node concept="x79VA" id="7B3y$vlfQc7" role="3nqlJM">
192+
<property role="x79VB" value="true if the node being queries implements IVariantionPoint" />
193+
</node>
194+
</node>
195+
</node>
196+
<node concept="13hLZK" id="7B3y$vlfFYR" role="13h7CW">
197+
<node concept="3clFbS" id="7B3y$vlfFYS" role="2VODD2" />
198+
</node>
199+
</node>
200+
</model>
201+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<model ref="r:78ec733d-1f15-4ce5-a242-b9a482926872(org.iets3.variability.artifacts.base.constraints)">
3+
<persistence version="9" />
4+
<languages>
5+
<use id="5dae8159-ab99-46bb-a40d-0cee30ee7018" name="jetbrains.mps.lang.constraints.rules.kinds" version="0" />
6+
<use id="ea3159bf-f48e-4720-bde2-86dba75f0d34" name="jetbrains.mps.lang.context.defs" version="0" />
7+
<use id="e51810c5-7308-4642-bcb6-469e61b5dd18" name="jetbrains.mps.lang.constraints.msg.specification" version="0" />
8+
<use id="134c38d4-e3af-4d9e-b069-1c7df0a4005d" name="jetbrains.mps.lang.constraints.rules.skeleton" version="0" />
9+
<use id="b3551702-269c-4f05-ba61-58060cef4292" name="jetbrains.mps.lang.rulesAndMessages" version="0" />
10+
<use id="3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1" name="jetbrains.mps.lang.constraints" version="6" />
11+
<use id="13744753-c81f-424a-9c1b-cf8943bf4e86" name="jetbrains.mps.lang.sharedConcepts" version="0" />
12+
<use id="3ad5badc-1d9c-461c-b7b1-fa2fcd0a0ae7" name="jetbrains.mps.lang.context" version="0" />
13+
<use id="ad93155d-79b2-4759-b10c-55123e763903" name="jetbrains.mps.lang.messages" version="0" />
14+
<devkit ref="00000000-0000-4000-0000-5604ebd4f22c(jetbrains.mps.devkit.aspect.constraints)" />
15+
</languages>
16+
<imports />
17+
<registry />
18+
</model>
19+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<model ref="r:ae7587ce-907a-4ce4-8ca3-402eaab2817d(org.iets3.variability.artifacts.base.editor)">
3+
<persistence version="9" />
4+
<languages>
5+
<use id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor" version="14" />
6+
<use id="aee9cad2-acd4-4608-aef2-0004f6a1cdbd" name="jetbrains.mps.lang.actions" version="4" />
7+
<devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
8+
</languages>
9+
<imports />
10+
<registry />
11+
</model>
12+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<model ref="r:1696fe6e-226e-4158-a6f2-3b9fa1ea7a02(org.iets3.variability.artifacts.base.structure)">
3+
<persistence version="9" />
4+
<languages>
5+
<devkit ref="78434eb8-b0e5-444b-850d-e7c4ad2da9ab(jetbrains.mps.devkit.aspect.structure)" />
6+
</languages>
7+
<imports />
8+
<registry>
9+
<language id="c72da2b9-7cce-4447-8389-f407dc1158b7" name="jetbrains.mps.lang.structure">
10+
<concept id="1169125787135" name="jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration" flags="ig" index="PkWjJ">
11+
<property id="6714410169261853888" name="conceptId" index="EcuMT" />
12+
</concept>
13+
<concept id="1169125989551" name="jetbrains.mps.lang.structure.structure.InterfaceConceptDeclaration" flags="ig" index="PlHQZ" />
14+
</language>
15+
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
16+
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
17+
<property id="1169194664001" name="name" index="TrG5h" />
18+
</concept>
19+
</language>
20+
</registry>
21+
<node concept="PlHQZ" id="7B3y$vlfDHq">
22+
<property role="EcuMT" value="8774008540172819290" />
23+
<property role="TrG5h" value="IVariationPoint" />
24+
</node>
25+
</model>
26+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<model ref="r:15c36bff-5521-4587-ab8f-44a39828c723(org.iets3.variability.artifacts.base.typesystem)">
3+
<persistence version="9" />
4+
<languages>
5+
<use id="7a5dda62-9140-4668-ab76-d5ed1746f2b2" name="jetbrains.mps.lang.typesystem" version="5" />
6+
<devkit ref="00000000-0000-4000-0000-1de82b3a4936(jetbrains.mps.devkit.aspect.typesystem)" />
7+
</languages>
8+
<imports />
9+
<registry />
10+
</model>
11+

0 commit comments

Comments
 (0)