Skip to content

Commit aed61bc

Browse files
committed
Include outsourced helper code for SumOp generator to remove runtime dependencies to MPS
The outsourced helper code creates dependencies to MPS in the runtime, which shall be avoided to maintain independence of MPS for the generated java code (and thus increase performance) Therefore the MPS dependent code is moved from the runtime-helper to the generator.
1 parent 23c5c0a commit aed61bc

File tree

5 files changed

+192
-352
lines changed

5 files changed

+192
-352
lines changed

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.genjava.simpleTypes/generator/template/[email protected]

Lines changed: 186 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" />
1717
<import index="j10v" ref="b76a0f63-5959-456b-993a-c796cc0d0c13/java:org.pcollections(org.iets3.core.expr.base.collections.stubs/)" />
1818
<import index="dj6k" ref="r:59d52af6-663b-49dc-8980-30d79b8dffa1(org.iets3.core.expr.simpleTypes.runtime)" />
19+
<import index="xfg9" ref="r:ac28053f-2041-47f6-806b-ecfaca05a64a(org.iets3.core.expr.base.runtime.runtime)" />
1920
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
2021
<import index="3673" ref="r:78633c85-d020-485e-aaa3-59e2daa3b826(com.mbeddr.mpsutil.interpreter.structure)" implicit="true" />
2122
<import index="kqnq" ref="r:7628c3bd-6988-4d33-9682-86b8cef4b8c0(com.mbeddr.mpsutil.interpreter.behavior)" implicit="true" />
@@ -63,6 +64,7 @@
6364
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
6465
<reference id="1144433057691" name="classifier" index="1PxDUh" />
6566
</concept>
67+
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
6668
<concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
6769
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
6870
<concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
@@ -161,6 +163,12 @@
161163
<child id="1163668922816" name="ifTrue" index="3K4E3e" />
162164
<child id="1163668934364" name="ifFalse" index="3K4GZi" />
163165
</concept>
166+
<concept id="5497648299878491908" name="jetbrains.mps.baseLanguage.structure.BaseVariableReference" flags="nn" index="1M0zk4">
167+
<reference id="5497648299878491909" name="baseVariableDeclaration" index="1M0zk5" />
168+
</concept>
169+
<concept id="6329021646629104954" name="jetbrains.mps.baseLanguage.structure.SingleLineComment" flags="nn" index="3SKdUt">
170+
<child id="8356039341262087992" name="line" index="1aUNEU" />
171+
</concept>
164172
<concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
165173
<concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
166174
<concept id="1200397529627" name="jetbrains.mps.baseLanguage.structure.CharConstant" flags="nn" index="1Xhbcc">
@@ -273,6 +281,14 @@
273281
<child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
274282
<child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
275283
</concept>
284+
<concept id="1883223317721008708" name="jetbrains.mps.lang.smodel.structure.IfInstanceOfStatement" flags="nn" index="Jncv_">
285+
<reference id="1883223317721008712" name="nodeConcept" index="JncvD" />
286+
<child id="1883223317721008709" name="body" index="Jncv$" />
287+
<child id="1883223317721008711" name="variable" index="JncvA" />
288+
<child id="1883223317721008710" name="nodeExpression" index="JncvB" />
289+
</concept>
290+
<concept id="1883223317721008713" name="jetbrains.mps.lang.smodel.structure.IfInstanceOfVariable" flags="ng" index="JncvC" />
291+
<concept id="1883223317721107059" name="jetbrains.mps.lang.smodel.structure.IfInstanceOfVarReference" flags="nn" index="Jnkvi" />
276292
<concept id="1966870290088668512" name="jetbrains.mps.lang.smodel.structure.Enum_MemberLiteral" flags="ng" index="2ViDtV">
277293
<reference id="1966870290088668516" name="memberDeclaration" index="2ViDtZ" />
278294
</concept>
@@ -312,6 +328,14 @@
312328
<property id="1169194664001" name="name" index="TrG5h" />
313329
</concept>
314330
</language>
331+
<language id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text">
332+
<concept id="155656958578482948" name="jetbrains.mps.lang.text.structure.Word" flags="nn" index="3oM_SD">
333+
<property id="155656958578482949" name="value" index="3oM_SC" />
334+
</concept>
335+
<concept id="2535923850359271782" name="jetbrains.mps.lang.text.structure.Line" flags="nn" index="1PaTwC">
336+
<child id="2535923850359271783" name="elements" index="1PaTwD" />
337+
</concept>
338+
</language>
315339
<language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
316340
<concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
317341
<child id="1204796294226" name="closure" index="23t8la" />
@@ -5045,37 +5069,133 @@
50455069
<node concept="3clFbS" id="4lRNjFWThy6" role="2VODD2">
50465070
<node concept="3clFbJ" id="7nYU6yJ3DIW" role="3cqZAp">
50475071
<node concept="3clFbS" id="7nYU6yJ3DIY" role="3clFbx">
5048-
<node concept="3cpWs6" id="7nYU6yJuhu6" role="3cqZAp">
5049-
<node concept="3clFbT" id="7nYU6yJuhDc" role="3cqZAk">
5050-
<property role="3clFbU" value="true" />
5072+
<node concept="Jncv_" id="7nYU6yJ0Xhx" role="3cqZAp">
5073+
<ref role="JncvD" to="700h:6zmBjqUily5" resolve="CollectionType" />
5074+
<node concept="3clFbS" id="7nYU6yJ0Xh_" role="Jncv$">
5075+
<node concept="3cpWs8" id="7nYU6yJt9Gm" role="3cqZAp">
5076+
<node concept="3cpWsn" id="7nYU6yJt9Gn" role="3cpWs9">
5077+
<property role="TrG5h" value="isIntSubtype" />
5078+
<node concept="10P_77" id="7nYU6yJt9vt" role="1tU5fm" />
5079+
<node concept="3JuTUA" id="7nYU6yJt9Go" role="33vP2m">
5080+
<node concept="2OqwBi" id="7nYU6yJt9Gp" role="3JuY14">
5081+
<node concept="Jnkvi" id="7nYU6yJt9Gq" role="2Oq$k0">
5082+
<ref role="1M0zk5" node="7nYU6yJ0XhB" resolve="collectionType" />
5083+
</node>
5084+
<node concept="3TrEf2" id="7nYU6yJt9Gr" role="2OqNvi">
5085+
<ref role="3Tt5mk" to="700h:6zmBjqUily6" resolve="baseType" />
5086+
</node>
5087+
</node>
5088+
<node concept="2YIFZM" id="7nYU6yJt9Gw" role="3JuZjQ">
5089+
<ref role="37wK5l" to="xfg9:2Qbt$1tTQcM" resolve="createIntegerType" />
5090+
<ref role="1Pybhc" to="xfg9:2Qbt$1tTQaH" resolve="PTF" />
5091+
<node concept="10Nm6u" id="7nYU6yJt9Gx" role="37wK5m" />
5092+
</node>
5093+
</node>
5094+
</node>
5095+
</node>
5096+
<node concept="3cpWs8" id="7nYU6yJtaNz" role="3cqZAp">
5097+
<node concept="3cpWsn" id="7nYU6yJtaN$" role="3cpWs9">
5098+
<property role="TrG5h" value="isRealSubtype" />
5099+
<node concept="10P_77" id="7nYU6yJtaN_" role="1tU5fm" />
5100+
<node concept="3JuTUA" id="7nYU6yJtaNA" role="33vP2m">
5101+
<node concept="2OqwBi" id="7nYU6yJtaNB" role="3JuY14">
5102+
<node concept="Jnkvi" id="7nYU6yJtaNC" role="2Oq$k0">
5103+
<ref role="1M0zk5" node="7nYU6yJ0XhB" resolve="collectionType" />
5104+
</node>
5105+
<node concept="3TrEf2" id="7nYU6yJtaND" role="2OqNvi">
5106+
<ref role="3Tt5mk" to="700h:6zmBjqUily6" resolve="baseType" />
5107+
</node>
5108+
</node>
5109+
<node concept="2YIFZM" id="7nYU6yJtbvd" role="3JuZjQ">
5110+
<ref role="37wK5l" to="xfg9:2Qbt$1tTQdc" resolve="createRealType" />
5111+
<ref role="1Pybhc" to="xfg9:2Qbt$1tTQaH" resolve="PTF" />
5112+
<node concept="10Nm6u" id="7nYU6yJtbve" role="37wK5m" />
5113+
</node>
5114+
</node>
5115+
</node>
5116+
</node>
5117+
<node concept="3SKdUt" id="1XDbtFtIRSi" role="3cqZAp">
5118+
<node concept="1PaTwC" id="1XDbtFtIRSj" role="1aUNEU">
5119+
<node concept="3oM_SD" id="1XDbtFtIRSk" role="1PaTwD">
5120+
<property role="3oM_SC" value="IntegerType" />
5121+
</node>
5122+
<node concept="3oM_SD" id="1XDbtFtIRWt" role="1PaTwD">
5123+
<property role="3oM_SC" value="is" />
5124+
</node>
5125+
<node concept="3oM_SD" id="1XDbtFtIRWC" role="1PaTwD">
5126+
<property role="3oM_SC" value="a" />
5127+
</node>
5128+
<node concept="3oM_SD" id="1XDbtFtIRWG" role="1PaTwD">
5129+
<property role="3oM_SC" value="subType" />
5130+
</node>
5131+
<node concept="3oM_SD" id="1XDbtFtIRXh" role="1PaTwD">
5132+
<property role="3oM_SC" value="of" />
5133+
</node>
5134+
<node concept="3oM_SD" id="1XDbtFtIRXv" role="1PaTwD">
5135+
<property role="3oM_SC" value="RealType," />
5136+
</node>
5137+
<node concept="3oM_SD" id="1XDbtFtIRYe" role="1PaTwD">
5138+
<property role="3oM_SC" value="but" />
5139+
</node>
5140+
<node concept="3oM_SD" id="1XDbtFtIRYA" role="1PaTwD">
5141+
<property role="3oM_SC" value="has" />
5142+
</node>
5143+
<node concept="3oM_SD" id="1XDbtFtIS0g" role="1PaTwD">
5144+
<property role="3oM_SC" value="a" />
5145+
</node>
5146+
<node concept="3oM_SD" id="1XDbtFtIS0z" role="1PaTwD">
5147+
<property role="3oM_SC" value="dedicated" />
5148+
</node>
5149+
<node concept="3oM_SD" id="6Hja7AWwLF_" role="1PaTwD">
5150+
<property role="3oM_SC" value="switch-condition" />
5151+
</node>
5152+
</node>
5153+
</node>
5154+
<node concept="3clFbJ" id="7nYU6yJtbWK" role="3cqZAp">
5155+
<node concept="3clFbS" id="7nYU6yJtbWM" role="3clFbx">
5156+
<node concept="3cpWs6" id="7nYU6yJtdc3" role="3cqZAp">
5157+
<node concept="3clFbT" id="7nYU6yJtdub" role="3cqZAk">
5158+
<property role="3clFbU" value="true" />
5159+
</node>
5160+
</node>
5161+
</node>
5162+
<node concept="1Wc70l" id="7nYU6yJtc$f" role="3clFbw">
5163+
<node concept="3fqX7Q" id="7nYU6yJtcQB" role="3uHU7w">
5164+
<node concept="37vLTw" id="7nYU6yJtd92" role="3fr31v">
5165+
<ref role="3cqZAo" node="7nYU6yJt9Gn" resolve="isIntSubtype" />
5166+
</node>
5167+
</node>
5168+
<node concept="37vLTw" id="7nYU6yJtcf_" role="3uHU7B">
5169+
<ref role="3cqZAo" node="7nYU6yJtaN$" resolve="isRealSubtype" />
5170+
</node>
5171+
</node>
5172+
</node>
50515173
</node>
5052-
</node>
5053-
</node>
5054-
<node concept="1Wc70l" id="7nYU6yJubP9" role="3clFbw">
5055-
<node concept="2YIFZM" id="7nYU6yJues5" role="3uHU7w">
5056-
<ref role="37wK5l" to="wfax:7nYU6yJucGT" resolve="isEligibleForBigDecimal" />
5057-
<ref role="1Pybhc" to="wfax:4lRNjFWGzDc" resolve="CollectionHelper" />
5058-
<node concept="2OqwBi" id="7nYU6yJug78" role="37wK5m">
5059-
<node concept="2OqwBi" id="7nYU6yJuf9_" role="2Oq$k0">
5060-
<node concept="30H73N" id="7nYU6yJueMc" role="2Oq$k0" />
5061-
<node concept="3TrEf2" id="7nYU6yJufCO" role="2OqNvi">
5174+
<node concept="JncvC" id="7nYU6yJ0XhB" role="JncvA">
5175+
<property role="TrG5h" value="collectionType" />
5176+
<node concept="2jxLKc" id="7nYU6yJ0XhC" role="1tU5fm" />
5177+
</node>
5178+
<node concept="2OqwBi" id="6Hja7AWwumz" role="JncvB">
5179+
<node concept="2OqwBi" id="6Hja7AWwum$" role="2Oq$k0">
5180+
<node concept="30H73N" id="6Hja7AWwum_" role="2Oq$k0" />
5181+
<node concept="3TrEf2" id="6Hja7AWwumA" role="2OqNvi">
50625182
<ref role="3Tt5mk" to="hm2y:4rZeNQ6NgXF" resolve="expr" />
50635183
</node>
50645184
</node>
5065-
<node concept="3JvlWi" id="7nYU6yJugBA" role="2OqNvi" />
5185+
<node concept="3JvlWi" id="6Hja7AWwumB" role="2OqNvi" />
50665186
</node>
50675187
</node>
5068-
<node concept="2OqwBi" id="4lRNjFWThy8" role="3uHU7B">
5069-
<node concept="2OqwBi" id="4lRNjFWThy9" role="2Oq$k0">
5070-
<node concept="30H73N" id="4lRNjFWThya" role="2Oq$k0" />
5071-
<node concept="3TrEf2" id="4lRNjFWThyb" role="2OqNvi">
5072-
<ref role="3Tt5mk" to="hm2y:7NJy08a3O9b" resolve="target" />
5073-
</node>
5188+
</node>
5189+
<node concept="2OqwBi" id="4lRNjFWThy8" role="3clFbw">
5190+
<node concept="2OqwBi" id="4lRNjFWThy9" role="2Oq$k0">
5191+
<node concept="30H73N" id="4lRNjFWThya" role="2Oq$k0" />
5192+
<node concept="3TrEf2" id="4lRNjFWThyb" role="2OqNvi">
5193+
<ref role="3Tt5mk" to="hm2y:7NJy08a3O9b" resolve="target" />
50745194
</node>
5075-
<node concept="1mIQ4w" id="4lRNjFWThyc" role="2OqNvi">
5076-
<node concept="chp4Y" id="4lRNjFWTmtx" role="cj9EA">
5077-
<ref role="cht4Q" to="700h:4Q4DxjD$qtz" resolve="SumOp" />
5078-
</node>
5195+
</node>
5196+
<node concept="1mIQ4w" id="4lRNjFWThyc" role="2OqNvi">
5197+
<node concept="chp4Y" id="4lRNjFWTmtx" role="cj9EA">
5198+
<ref role="cht4Q" to="700h:4Q4DxjD$qtz" resolve="SumOp" />
50795199
</node>
50805200
</node>
50815201
</node>
@@ -5124,17 +5244,39 @@
51245244
<node concept="3clFbS" id="7nYU6yJ3Fjc" role="2VODD2">
51255245
<node concept="3clFbJ" id="7nYU6yJ3Fjd" role="3cqZAp">
51265246
<node concept="3clFbS" id="7nYU6yJ3Fje" role="3clFbx">
5127-
<node concept="3cpWs6" id="7nYU6yJAhox" role="3cqZAp">
5128-
<node concept="3clFbT" id="7nYU6yJAhES" role="3cqZAk">
5129-
<property role="3clFbU" value="true" />
5247+
<node concept="Jncv_" id="7nYU6yJ3Fjf" role="3cqZAp">
5248+
<ref role="JncvD" to="700h:6zmBjqUily5" resolve="CollectionType" />
5249+
<node concept="3clFbS" id="7nYU6yJ3Fjl" role="Jncv$">
5250+
<node concept="3clFbJ" id="7nYU6yJoXmV" role="3cqZAp">
5251+
<node concept="3clFbS" id="7nYU6yJoXmX" role="3clFbx">
5252+
<node concept="3cpWs6" id="7nYU6yJt8fp" role="3cqZAp">
5253+
<node concept="3clFbT" id="7nYU6yJt8wZ" role="3cqZAk">
5254+
<property role="3clFbU" value="true" />
5255+
</node>
5256+
</node>
5257+
</node>
5258+
<node concept="3JuTUA" id="7nYU6yJp03Z" role="3clFbw">
5259+
<node concept="2OqwBi" id="7nYU6yJp0$B" role="3JuY14">
5260+
<node concept="Jnkvi" id="7nYU6yJp060" role="2Oq$k0">
5261+
<ref role="1M0zk5" node="7nYU6yJ3Fjy" resolve="collectionType" />
5262+
</node>
5263+
<node concept="3TrEf2" id="7nYU6yJp103" role="2OqNvi">
5264+
<ref role="3Tt5mk" to="700h:6zmBjqUily6" resolve="baseType" />
5265+
</node>
5266+
</node>
5267+
<node concept="2YIFZM" id="7nYU6yJp2FE" role="3JuZjQ">
5268+
<ref role="37wK5l" to="xfg9:2Qbt$1tTQcM" resolve="createIntegerType" />
5269+
<ref role="1Pybhc" to="xfg9:2Qbt$1tTQaH" resolve="PTF" />
5270+
<node concept="10Nm6u" id="7nYU6yJp2FF" role="37wK5m" />
5271+
</node>
5272+
</node>
5273+
</node>
51305274
</node>
5131-
</node>
5132-
</node>
5133-
<node concept="1Wc70l" id="7nYU6yJAeG0" role="3clFbw">
5134-
<node concept="2YIFZM" id="7nYU6yJAfg7" role="3uHU7w">
5135-
<ref role="37wK5l" to="wfax:7nYU6yJtgp2" resolve="isEligibleForBigInteger" />
5136-
<ref role="1Pybhc" to="wfax:4lRNjFWGzDc" resolve="CollectionHelper" />
5137-
<node concept="2OqwBi" id="7nYU6yJAgKS" role="37wK5m">
5275+
<node concept="JncvC" id="7nYU6yJ3Fjy" role="JncvA">
5276+
<property role="TrG5h" value="collectionType" />
5277+
<node concept="2jxLKc" id="7nYU6yJ3Fjz" role="1tU5fm" />
5278+
</node>
5279+
<node concept="2OqwBi" id="7nYU6yJAgKS" role="JncvB">
51385280
<node concept="2OqwBi" id="7nYU6yJAfR4" role="2Oq$k0">
51395281
<node concept="30H73N" id="7nYU6yJAfy1" role="2Oq$k0" />
51405282
<node concept="3TrEf2" id="7nYU6yJAgwX" role="2OqNvi">
@@ -5144,17 +5286,17 @@
51445286
<node concept="3JvlWi" id="7nYU6yJAheS" role="2OqNvi" />
51455287
</node>
51465288
</node>
5147-
<node concept="2OqwBi" id="7nYU6yJ3Fj$" role="3uHU7B">
5148-
<node concept="2OqwBi" id="7nYU6yJ3Fj_" role="2Oq$k0">
5149-
<node concept="30H73N" id="7nYU6yJ3FjA" role="2Oq$k0" />
5150-
<node concept="3TrEf2" id="7nYU6yJ3FjB" role="2OqNvi">
5151-
<ref role="3Tt5mk" to="hm2y:7NJy08a3O9b" resolve="target" />
5152-
</node>
5289+
</node>
5290+
<node concept="2OqwBi" id="7nYU6yJ3Fj$" role="3clFbw">
5291+
<node concept="2OqwBi" id="7nYU6yJ3Fj_" role="2Oq$k0">
5292+
<node concept="30H73N" id="7nYU6yJ3FjA" role="2Oq$k0" />
5293+
<node concept="3TrEf2" id="7nYU6yJ3FjB" role="2OqNvi">
5294+
<ref role="3Tt5mk" to="hm2y:7NJy08a3O9b" resolve="target" />
51535295
</node>
5154-
<node concept="1mIQ4w" id="7nYU6yJ3FjC" role="2OqNvi">
5155-
<node concept="chp4Y" id="7nYU6yJ3FjD" role="cj9EA">
5156-
<ref role="cht4Q" to="700h:4Q4DxjD$qtz" resolve="SumOp" />
5157-
</node>
5296+
</node>
5297+
<node concept="1mIQ4w" id="7nYU6yJ3FjC" role="2OqNvi">
5298+
<node concept="chp4Y" id="7nYU6yJ3FjD" role="cj9EA">
5299+
<ref role="cht4Q" to="700h:4Q4DxjD$qtz" resolve="SumOp" />
51585300
</node>
51595301
</node>
51605302
</node>

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.genjava.simpleTypes/org.iets3.core.expr.genjava.simpleTypes.mpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<dependency reexport="false">272bf1ac-d70c-4dac-96a3-976884f641b8(org.iets3.core.expr.genjava.simpleTypes.rt)</dependency>
3434
<dependency reexport="false">2f7e2e35-6e74-4c43-9fa5-2465d68f5996(org.iets3.core.expr.collections)</dependency>
3535
<dependency reexport="false">b76a0f63-5959-456b-993a-c796cc0d0c13(org.iets3.core.expr.base.collections.stubs)</dependency>
36+
<dependency reexport="false">dbe08fb5-334d-4b64-86a0-622406fa0e87(org.iets3.core.expr.base.runtime)</dependency>
3637
</dependencies>
3738
<languageVersions>
3839
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="11" />

0 commit comments

Comments
 (0)