Skip to content

Commit d2053d0

Browse files
authored
Merge pull request #769 from IETS3/feature/flexibleTupleAccess__2021.3
Named based result access of decision tables
2 parents 77dbac2 + b702a43 commit d2053d0

File tree

16 files changed

+1901
-320
lines changed

16 files changed

+1901
-320
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ The project does _not_ follow Semantic Versioning and the changes are documented
1919
### Added
2020

2121
- `NumberLiteral` can now be converted to a `BigDecimal` with the method `toBigDecimal`.
22+
- Named based access of result columns of multi decision tables were added. Columns can be referenced by name and coexist with the index based access.
2223

2324
## December 2023
2425

@@ -97,4 +98,4 @@ The language extends typetags with support for different binding times of values
9798

9899
### Changed
99100

100-
- `IETS3ExprEvalHelper` methods no longer log exceptions that they re-throw. Some callers may ignore exceptions thrown by the interpreter, and having them logged unnecessarily clutters the logs. It is now the caller's responsibility to log exceptions where needed.
101+
- `IETS3ExprEvalHelper` methods no longer log exceptions that they re-throw. Some callers may ignore exceptions thrown by the interpreter, and having them logged unnecessarily clutters the logs. It is now the caller's responsibility to log exceptions where needed.

build/scripts/build-allScripts.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@
225225
<library file="${artifacts.mps}/languages/runtimes/jetbrains.mps.lang.constraints.rules.runtime.jar" />
226226
<library file="${artifacts.mps}/languages/runtimes/jetbrains.mps.lang.feedback.api.jar" />
227227
<library file="${artifacts.mps}/languages/runtimes/jetbrains.mps.lang.feedback.context.jar" />
228+
<library file="${artifacts.mps}/languages/runtimes/jetbrains.mps.lang.feedback.problem.legacy-constraints.jar" />
228229
<library file="${artifacts.mps}/languages/runtimes/jetbrains.mps.lang.feedback.problem.rt.jar" />
229230
<library file="${artifacts.mps}/languages/runtimes/jetbrains.mps.lang.feedback.problem.rules.jar" />
230231
<library file="${artifacts.mps}/languages/runtimes/jetbrains.mps.lang.messages.api.jar" />

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.base/models/behavior.mps

Lines changed: 159 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8118,7 +8118,7 @@
81188118
<ref role="3cqZAo" node="Qsaevo33zM" resolve="expr" />
81198119
</node>
81208120
<node concept="37vLTw" id="5ElQ4ZyUIl" role="37wK5m">
8121-
<ref role="3cqZAo" node="Qsaevo35yg" resolve="ctx" />
8121+
<ref role="3cqZAo" node="Qsaevo35yg" resolve="context" />
81228122
</node>
81238123
<node concept="2ShNRf" id="5ElQ4Zz096" role="37wK5m">
81248124
<node concept="1pGfFk" id="5ElQ4Zz3WU" role="2ShVmc">
@@ -8154,7 +8154,7 @@
81548154
<ref role="3cqZAo" node="5ElQ4Z$IM_" resolve="expr" />
81558155
</node>
81568156
<node concept="37vLTw" id="5ElQ4Z$JZk" role="37wK5m">
8157-
<ref role="3cqZAo" node="5ElQ4Z$J$R" resolve="ctx" />
8157+
<ref role="3cqZAo" node="5ElQ4Z$J$R" resolve="context" />
81588158
</node>
81598159
<node concept="2ShNRf" id="5ElQ4Z$LEv" role="37wK5m">
81608160
<node concept="HV5vD" id="5ElQ4Z$Mqs" role="2ShVmc">
@@ -8516,7 +8516,7 @@
85168516
<ref role="3cqZAo" node="7p_bE3JctZw" resolve="expr" />
85178517
</node>
85188518
<node concept="37vLTw" id="5ElQ4Z$7xl" role="37wK5m">
8519-
<ref role="3cqZAo" node="7p_bE3Jcw0b" resolve="stuffForEnv" />
8519+
<ref role="3cqZAo" node="7p_bE3Jcw0b" resolve="environmentContent" />
85208520
</node>
85218521
<node concept="2ShNRf" id="5zuMBsCJxu8" role="37wK5m">
85228522
<node concept="1pGfFk" id="5zuMBsCJxrk" role="2ShVmc">
@@ -8558,7 +8558,7 @@
85588558
<ref role="3cqZAo" node="5ElQ4Z_71W" resolve="expr" />
85598559
</node>
85608560
<node concept="37vLTw" id="5ElQ4Z_71S" role="37wK5m">
8561-
<ref role="3cqZAo" node="5ElQ4Z_71Y" resolve="stuffForEnv" />
8561+
<ref role="3cqZAo" node="5ElQ4Z_71Y" resolve="environmentContent" />
85628562
</node>
85638563
<node concept="2ShNRf" id="5ElQ4Z_cKW" role="37wK5m">
85648564
<node concept="HV5vD" id="5ElQ4Z_dIx" role="2ShVmc">
@@ -8664,7 +8664,7 @@
86648664
<node concept="liA8E" id="2nydsCfAQMF" role="2OqNvi">
86658665
<ref role="37wK5l" node="2nydsCf$H0v" resolve="withEnvironmentContent" />
86668666
<node concept="37vLTw" id="2nydsCfAS1p" role="37wK5m">
8667-
<ref role="3cqZAo" node="5ElQ4ZzZbv" resolve="stuffForEnv" />
8667+
<ref role="3cqZAo" node="5ElQ4ZzZbv" resolve="environmentContent" />
86688668
</node>
86698669
</node>
86708670
</node>
@@ -8903,7 +8903,7 @@
89038903
</node>
89048904
<node concept="3Tm1VV" id="3xDNhgd53EA" role="1B3o_S" />
89058905
<node concept="2AHcQZ" id="2nydsCfyZ7D" role="2AJF6D">
8906-
<ref role="2AI5Lk" to="wyt6:~Deprecated" />
8906+
<ref role="2AI5Lk" to="wyt6:~Deprecated" resolve="Deprecated" />
89078907
</node>
89088908
<node concept="3UR2Jj" id="2nydsCfyZ7A" role="lGtFl">
89098909
<node concept="TZ5HI" id="2nydsCfyZ7B" role="3nqlJM">
@@ -26526,7 +26526,7 @@
2652626526
</node>
2652726527
</node>
2652826528
<node concept="2qgKlT" id="6wzrxL3bNIn" role="2OqNvi">
26529-
<ref role="37wK5l" node="6wzrxL3bBWo" resolve="isProposalForThisType" />
26529+
<ref role="37wK5l" node="6wzrxL3bBWo" resolve="isProposalNodeForThisType" />
2653026530
<node concept="37vLTw" id="6wzrxL3bNTF" role="37wK5m">
2653126531
<ref role="3cqZAo" node="6wzrxL38hF$" resolve="n" />
2653226532
</node>
@@ -26684,7 +26684,7 @@
2668426684
<node concept="2qgKlT" id="jqB9UdsEfF" role="2OqNvi">
2668526685
<ref role="37wK5l" node="jqB9UdsHnW" resolve="isProposalConceptForThisType" />
2668626686
<node concept="37vLTw" id="jqB9UdsEfG" role="37wK5m">
26687-
<ref role="3cqZAo" node="jqB9UdsEfN" resolve="n" />
26687+
<ref role="3cqZAo" node="jqB9UdsEfN" resolve="c" />
2668826688
</node>
2668926689
</node>
2669026690
</node>
@@ -26936,12 +26936,12 @@
2693626936
<node concept="3clFbF" id="2nydsCf$H0x" role="3cqZAp">
2693726937
<node concept="37vLTI" id="2nydsCf$H0y" role="3clFbG">
2693826938
<node concept="37vLTw" id="2nydsCf$H0z" role="37vLTx">
26939-
<ref role="3cqZAo" node="2nydsCf$H0F" resolve="interpreter" />
26939+
<ref role="3cqZAo" node="2nydsCf$H0F" resolve="environmentContent" />
2694026940
</node>
2694126941
<node concept="2OqwBi" id="2nydsCf$H0$" role="37vLTJ">
2694226942
<node concept="Xjq3P" id="2nydsCf$H0_" role="2Oq$k0" />
2694326943
<node concept="2OwXpG" id="2nydsCf$H0A" role="2OqNvi">
26944-
<ref role="2Oxat5" node="2nydsCf$Ggh" resolve="environment" />
26944+
<ref role="2Oxat5" node="2nydsCf$Ggh" resolve="environmentContent" />
2694526945
</node>
2694626946
</node>
2694726947
</node>
@@ -27111,7 +27111,7 @@
2711127111
<ref role="3cqZAo" node="2nydsCfz7pp" resolve="expr" />
2711227112
</node>
2711327113
<node concept="37vLTw" id="2nydsCf_aku" role="37wK5m">
27114-
<ref role="3cqZAo" node="2nydsCf$Ggh" resolve="environment" />
27114+
<ref role="3cqZAo" node="2nydsCf$Ggh" resolve="environmentContent" />
2711527115
</node>
2711627116
</node>
2711727117
</node>
@@ -27120,7 +27120,7 @@
2712027120
<node concept="3y3z36" id="2nydsCf_6QE" role="3clFbw">
2712127121
<node concept="10Nm6u" id="2nydsCf_7_K" role="3uHU7w" />
2712227122
<node concept="37vLTw" id="2nydsCf_631" role="3uHU7B">
27123-
<ref role="3cqZAo" node="2nydsCf$Ggh" resolve="environment" />
27123+
<ref role="3cqZAo" node="2nydsCf$Ggh" resolve="environmentContent" />
2712427124
</node>
2712527125
</node>
2712627126
</node>
@@ -27373,5 +27373,152 @@
2737327373
</node>
2737427374
<node concept="3Tm1VV" id="2nydsCfyYD1" role="1B3o_S" />
2737527375
</node>
27376+
<node concept="13h7C7" id="5r47dOfJ8Us">
27377+
<property role="3GE5qa" value="tuples" />
27378+
<ref role="13h7C2" to="hm2y:5r47dOfJ8Ur" resolve="ITupleDeclaration" />
27379+
<node concept="13i0hz" id="5r47dOfJ8UL" role="13h7CS">
27380+
<property role="13i0iv" value="true" />
27381+
<property role="13i0it" value="true" />
27382+
<property role="TrG5h" value="getMembers" />
27383+
<node concept="3Tm1VV" id="5r47dOfJ8UM" role="1B3o_S" />
27384+
<node concept="2I9FWS" id="5r47dOfJ9kG" role="3clF45">
27385+
<ref role="2I9WkF" to="hm2y:5r47dOfJ8UC" resolve="ITupleMemberDeclaration" />
27386+
</node>
27387+
<node concept="3clFbS" id="5r47dOfJ8UO" role="3clF47" />
27388+
</node>
27389+
<node concept="13hLZK" id="5r47dOfJ8Ut" role="13h7CW">
27390+
<node concept="3clFbS" id="5r47dOfJ8Uu" role="2VODD2" />
27391+
</node>
27392+
</node>
27393+
<node concept="13h7C7" id="5r47dOg5pCc">
27394+
<property role="3GE5qa" value="tuples" />
27395+
<ref role="13h7C2" to="hm2y:5r47dOfJ8UC" resolve="ITupleMemberDeclaration" />
27396+
<node concept="13i0hz" id="5r47dOg5pCn" role="13h7CS">
27397+
<property role="13i0iv" value="true" />
27398+
<property role="13i0it" value="true" />
27399+
<property role="TrG5h" value="type" />
27400+
<node concept="3Tm1VV" id="5r47dOg5pCo" role="1B3o_S" />
27401+
<node concept="3Tqbb2" id="5r47dOg5pT$" role="3clF45">
27402+
<ref role="ehGHo" to="hm2y:6sdnDbSlaok" resolve="Type" />
27403+
</node>
27404+
<node concept="3clFbS" id="5r47dOg5pCq" role="3clF47" />
27405+
</node>
27406+
<node concept="13hLZK" id="5r47dOg5pCd" role="13h7CW">
27407+
<node concept="3clFbS" id="5r47dOg5pCe" role="2VODD2" />
27408+
</node>
27409+
</node>
27410+
<node concept="13h7C7" id="6GiZkUz7qWV">
27411+
<property role="3GE5qa" value="tuples" />
27412+
<ref role="13h7C2" to="hm2y:6GiZkUz7qWO" resolve="InlineNamedTupleAccess" />
27413+
<node concept="13hLZK" id="6GiZkUz7qWW" role="13h7CW">
27414+
<node concept="3clFbS" id="6GiZkUz7qWX" role="2VODD2" />
27415+
</node>
27416+
<node concept="13i0hz" id="6GiZkUz7qX6" role="13h7CS">
27417+
<property role="TrG5h" value="renderReadable" />
27418+
<ref role="13i0hy" node="6kR0qIbI2yi" resolve="renderReadable" />
27419+
<node concept="3Tm1VV" id="6GiZkUz7qX7" role="1B3o_S" />
27420+
<node concept="3clFbS" id="6GiZkUz7qXa" role="3clF47">
27421+
<node concept="3clFbF" id="6GiZkUz7Aah" role="3cqZAp">
27422+
<node concept="2OqwBi" id="6GiZkUz7AIH" role="3clFbG">
27423+
<node concept="2OqwBi" id="6GiZkUz7AkM" role="2Oq$k0">
27424+
<node concept="13iPFW" id="6GiZkUz7Aae" role="2Oq$k0" />
27425+
<node concept="3TrEf2" id="6GiZkUz7A_H" role="2OqNvi">
27426+
<ref role="3Tt5mk" to="hm2y:6GiZkUz7r1V" resolve="member" />
27427+
</node>
27428+
</node>
27429+
<node concept="3TrcHB" id="6GiZkUz7ASw" role="2OqNvi">
27430+
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
27431+
</node>
27432+
</node>
27433+
</node>
27434+
</node>
27435+
<node concept="17QB3L" id="6GiZkUz7qXb" role="3clF45" />
27436+
</node>
27437+
<node concept="13i0hz" id="6GiZkUzfnDf" role="13h7CS">
27438+
<property role="TrG5h" value="expression" />
27439+
<node concept="3Tm1VV" id="6GiZkUzfnDg" role="1B3o_S" />
27440+
<node concept="3Tqbb2" id="6GiZkUzfnJ0" role="3clF45">
27441+
<ref role="ehGHo" to="hm2y:6sdnDbSla17" resolve="Expression" />
27442+
</node>
27443+
<node concept="3clFbS" id="6GiZkUzfnDi" role="3clF47">
27444+
<node concept="3clFbF" id="6GiZkUzfnJO" role="3cqZAp">
27445+
<node concept="2OqwBi" id="6GiZkUzfoIf" role="3clFbG">
27446+
<node concept="1PxgMI" id="6GiZkUzfor4" role="2Oq$k0">
27447+
<node concept="chp4Y" id="6GiZkUzfos0" role="3oSUPX">
27448+
<ref role="cht4Q" to="hm2y:7NJy08a3O99" resolve="DotExpression" />
27449+
</node>
27450+
<node concept="2OqwBi" id="6GiZkUzfnOJ" role="1m5AlR">
27451+
<node concept="13iPFW" id="6GiZkUzfnJN" role="2Oq$k0" />
27452+
<node concept="1mfA1w" id="6GiZkUzfnVi" role="2OqNvi" />
27453+
</node>
27454+
</node>
27455+
<node concept="3TrEf2" id="6GiZkUzfpIH" role="2OqNvi">
27456+
<ref role="3Tt5mk" to="hm2y:4rZeNQ6NgXF" resolve="expr" />
27457+
</node>
27458+
</node>
27459+
</node>
27460+
</node>
27461+
</node>
27462+
<node concept="13i0hz" id="6GiZkUzfqE6" role="13h7CS">
27463+
<property role="TrG5h" value="type" />
27464+
<node concept="3Tm1VV" id="6GiZkUzfqE7" role="1B3o_S" />
27465+
<node concept="3Tqbb2" id="6GiZkUzfqRk" role="3clF45">
27466+
<ref role="ehGHo" to="hm2y:5r47dOfJ9kS" resolve="InlineTupleType" />
27467+
</node>
27468+
<node concept="3clFbS" id="6GiZkUzfqE9" role="3clF47">
27469+
<node concept="3clFbF" id="6GiZkUzfr29" role="3cqZAp">
27470+
<node concept="1PxgMI" id="6GiZkUzfsfl" role="3clFbG">
27471+
<property role="1BlNFB" value="true" />
27472+
<node concept="chp4Y" id="6GiZkUzfsgz" role="3oSUPX">
27473+
<ref role="cht4Q" to="hm2y:5r47dOfJ9kS" resolve="InlineTupleType" />
27474+
</node>
27475+
<node concept="2OqwBi" id="6GiZkUzfrek" role="1m5AlR">
27476+
<node concept="BsUDl" id="6GiZkUzfr28" role="2Oq$k0">
27477+
<ref role="37wK5l" node="6GiZkUzfnDf" resolve="expression" />
27478+
</node>
27479+
<node concept="3JvlWi" id="6GiZkUzfrHO" role="2OqNvi" />
27480+
</node>
27481+
</node>
27482+
</node>
27483+
</node>
27484+
</node>
27485+
<node concept="13i0hz" id="1c6hIxyZnje" role="13h7CS">
27486+
<property role="TrG5h" value="tupleDeclaration" />
27487+
<node concept="3Tm1VV" id="1c6hIxyZnjf" role="1B3o_S" />
27488+
<node concept="3Tqbb2" id="1c6hIxyZnyV" role="3clF45">
27489+
<ref role="ehGHo" to="hm2y:5r47dOfJ8Ur" resolve="ITupleDeclaration" />
27490+
</node>
27491+
<node concept="3clFbS" id="1c6hIxyZnjh" role="3clF47">
27492+
<node concept="3clFbF" id="1c6hIxyZn$Y" role="3cqZAp">
27493+
<node concept="2OqwBi" id="1c6hIxyZn_0" role="3clFbG">
27494+
<node concept="BsUDl" id="1c6hIxyZn_1" role="2Oq$k0">
27495+
<ref role="37wK5l" node="6GiZkUzfqE6" resolve="type" />
27496+
</node>
27497+
<node concept="3TrEf2" id="1c6hIxyZn_2" role="2OqNvi">
27498+
<ref role="3Tt5mk" to="hm2y:5r47dOfJ9kT" resolve="decl" />
27499+
</node>
27500+
</node>
27501+
</node>
27502+
</node>
27503+
</node>
27504+
<node concept="13i0hz" id="6GiZkUzfnf3" role="13h7CS">
27505+
<property role="TrG5h" value="effectDescriptor" />
27506+
<ref role="13i0hy" node="6GySMNjjWfO" resolve="effectDescriptor" />
27507+
<node concept="3Tm1VV" id="6GiZkUzfnf4" role="1B3o_S" />
27508+
<node concept="3clFbS" id="6GiZkUzfnfd" role="3clF47">
27509+
<node concept="3clFbF" id="6GiZkUzfnq7" role="3cqZAp">
27510+
<node concept="BsUDl" id="6GiZkUzfnq2" role="3clFbG">
27511+
<ref role="37wK5l" node="6KxoTHgL$U0" resolve="deriveFrom" />
27512+
<node concept="BsUDl" id="1c6hIxyZnGy" role="37wK5m">
27513+
<ref role="37wK5l" node="1c6hIxyZnje" resolve="tupleDeclaration" />
27514+
</node>
27515+
</node>
27516+
</node>
27517+
</node>
27518+
<node concept="3uibUv" id="6GiZkUzfnfe" role="3clF45">
27519+
<ref role="3uigEE" to="oq0c:3ni3WieuV7z" resolve="EffectDescriptor" />
27520+
</node>
27521+
</node>
27522+
</node>
2737627523
</model>
2737727524

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.base/models/constraints.mps

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,5 +1098,36 @@
10981098
</node>
10991099
</node>
11001100
</node>
1101+
<node concept="1M2fIO" id="6GiZkUz7$Pr">
1102+
<property role="3GE5qa" value="tuples" />
1103+
<ref role="1M2myG" to="hm2y:6GiZkUz7qWO" resolve="InlineNamedTupleAccess" />
1104+
<node concept="9S07l" id="6GiZkUz7$Ps" role="9Vyp8">
1105+
<node concept="3clFbS" id="6GiZkUz7$Pt" role="2VODD2">
1106+
<node concept="3clFbF" id="6GiZkUz7$X6" role="3cqZAp">
1107+
<node concept="2OqwBi" id="7cphKbLweDA" role="3clFbG">
1108+
<node concept="2OqwBi" id="7cphKbLwdZw" role="2Oq$k0">
1109+
<node concept="2OqwBi" id="7cphKbLwdf4" role="2Oq$k0">
1110+
<node concept="1PxgMI" id="7cphKbLwcPC" role="2Oq$k0">
1111+
<node concept="chp4Y" id="7cphKbLwcXc" role="3oSUPX">
1112+
<ref role="cht4Q" to="hm2y:7NJy08a3O99" resolve="DotExpression" />
1113+
</node>
1114+
<node concept="nLn13" id="7cphKbLwcfl" role="1m5AlR" />
1115+
</node>
1116+
<node concept="3TrEf2" id="7cphKbLwd$z" role="2OqNvi">
1117+
<ref role="3Tt5mk" to="hm2y:4rZeNQ6NgXF" resolve="expr" />
1118+
</node>
1119+
</node>
1120+
<node concept="3JvlWi" id="7cphKbLwek1" role="2OqNvi" />
1121+
</node>
1122+
<node concept="1mIQ4w" id="7cphKbLweYP" role="2OqNvi">
1123+
<node concept="chp4Y" id="7cphKbLwffF" role="cj9EA">
1124+
<ref role="cht4Q" to="hm2y:5r47dOfJ9kS" resolve="InlineTupleType" />
1125+
</node>
1126+
</node>
1127+
</node>
1128+
</node>
1129+
</node>
1130+
</node>
1131+
</node>
11011132
</model>
11021133

0 commit comments

Comments
 (0)