Commit b8c94b58 authored by André Pacak's avatar André Pacak

working type checker for sum types in IncA

parent e17aea27
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -8,7 +8,103 @@
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070475587102:jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" />
<root>
<file name="ConstraintsAspectDescriptor.java">
<unit at="13,0,29,0" name="SumTypes.constraints.ConstraintsAspectDescriptor" />
<unit at="13,0,35,0" name="SumTypes.constraints.ConstraintsAspectDescriptor" />
</file>
</root>
<root nodeRef="r:974e8c2a-7080-4ca5-bdab-6d74431c3763(SumTypes.constraints)/2951477311799558508">
<file name="Var_Constraints.java">
<node id="2951477311799558508" at="17,28,18,129" concept="5" />
<node id="2951477311799558508" at="22,84,23,119" concept="3" />
<node id="2951477311799558586" at="26,40,27,20" concept="4" />
<node id="2951477311799558586" at="30,70,31,37" concept="3" />
<node id="2951477311799559064" at="31,37,32,233" concept="4" />
<node id="2951477311799558508" at="34,7,35,22" concept="4" />
<node id="2951477311799558508" at="17,0,20,0" concept="0" trace="Var_Constraints#()V" />
<node id="2951477311799558586" at="25,0,29,0" concept="2" trace="hasOwnValidator#()Z" />
<node id="2951477311799558586" at="29,0,34,0" concept="2" trace="validateValue#(Lorg/jetbrains/mps/openapi/model/SNode;Ljava/lang/String;)Z" />
<node id="2951477311799558586" at="23,119,34,7" concept="1" />
<node id="2951477311799558508" at="21,0,37,0" concept="2" trace="getSpecifiedProperties#()Ljava/util/Map;" />
<scope id="2951477311799558508" at="17,28,18,129" />
<scope id="2951477311799558586" at="26,40,27,20" />
<scope id="2951477311799558586" at="30,70,32,233">
<var name="propertyName" id="2951477311799558586" />
</scope>
<scope id="2951477311799558508" at="17,0,20,0" />
<scope id="2951477311799558586" at="25,0,29,0" />
<scope id="2951477311799558586" at="29,0,34,0">
<var name="node" id="2951477311799558586" />
<var name="propertyValue" id="2951477311799558586" />
</scope>
<scope id="2951477311799558508" at="22,84,35,22">
<var name="properties" id="2951477311799558508" />
</scope>
<scope id="2951477311799558508" at="21,0,37,0" />
<unit id="2951477311799558586" at="24,137,34,5" name="SumTypes.constraints.Var_Constraints$1" />
<unit id="2951477311799558508" at="16,0,38,0" name="SumTypes.constraints.Var_Constraints" />
</file>
</root>
<root nodeRef="r:974e8c2a-7080-4ca5-bdab-6d74431c3763(SumTypes.constraints)/2951477311799627903">
<file name="Let_Constraints.java">
<node id="2951477311799627903" at="17,28,18,129" concept="5" />
<node id="2951477311799627903" at="22,84,23,119" concept="3" />
<node id="2951477311799628656" at="26,40,27,20" concept="4" />
<node id="2951477311799628656" at="30,70,31,37" concept="3" />
<node id="5790571747118569642" at="31,37,32,149" concept="4" />
<node id="2951477311799627903" at="34,7,35,22" concept="4" />
<node id="2951477311799627903" at="17,0,20,0" concept="0" trace="Let_Constraints#()V" />
<node id="2951477311799628656" at="25,0,29,0" concept="2" trace="hasOwnValidator#()Z" />
<node id="2951477311799628656" at="29,0,34,0" concept="2" trace="validateValue#(Lorg/jetbrains/mps/openapi/model/SNode;Ljava/lang/String;)Z" />
<node id="2951477311799628656" at="23,119,34,7" concept="1" />
<node id="2951477311799627903" at="21,0,37,0" concept="2" trace="getSpecifiedProperties#()Ljava/util/Map;" />
<scope id="2951477311799627903" at="17,28,18,129" />
<scope id="2951477311799628656" at="26,40,27,20" />
<scope id="2951477311799628656" at="30,70,32,149">
<var name="propertyName" id="2951477311799628656" />
</scope>
<scope id="2951477311799627903" at="17,0,20,0" />
<scope id="2951477311799628656" at="25,0,29,0" />
<scope id="2951477311799628656" at="29,0,34,0">
<var name="node" id="2951477311799628656" />
<var name="propertyValue" id="2951477311799628656" />
</scope>
<scope id="2951477311799627903" at="22,84,35,22">
<var name="properties" id="2951477311799627903" />
</scope>
<scope id="2951477311799627903" at="21,0,37,0" />
<unit id="2951477311799628656" at="24,137,34,5" name="SumTypes.constraints.Let_Constraints$1" />
<unit id="2951477311799627903" at="16,0,38,0" name="SumTypes.constraints.Let_Constraints" />
</file>
</root>
<root nodeRef="r:974e8c2a-7080-4ca5-bdab-6d74431c3763(SumTypes.constraints)/2951477311799629350">
<file name="CaseCase_Constraints.java">
<node id="2951477311799629350" at="17,33,18,134" concept="5" />
<node id="2951477311799629350" at="22,84,23,119" concept="3" />
<node id="2951477311799629428" at="26,40,27,20" concept="4" />
<node id="2951477311799629428" at="30,70,31,37" concept="3" />
<node id="2951477311799629434" at="31,37,32,149" concept="4" />
<node id="2951477311799629350" at="34,7,35,22" concept="4" />
<node id="2951477311799629350" at="17,0,20,0" concept="0" trace="CaseCase_Constraints#()V" />
<node id="2951477311799629428" at="25,0,29,0" concept="2" trace="hasOwnValidator#()Z" />
<node id="2951477311799629428" at="29,0,34,0" concept="2" trace="validateValue#(Lorg/jetbrains/mps/openapi/model/SNode;Ljava/lang/String;)Z" />
<node id="2951477311799629428" at="23,119,34,7" concept="1" />
<node id="2951477311799629350" at="21,0,37,0" concept="2" trace="getSpecifiedProperties#()Ljava/util/Map;" />
<scope id="2951477311799629350" at="17,33,18,134" />
<scope id="2951477311799629428" at="26,40,27,20" />
<scope id="2951477311799629428" at="30,70,32,149">
<var name="propertyName" id="2951477311799629428" />
</scope>
<scope id="2951477311799629350" at="17,0,20,0" />
<scope id="2951477311799629428" at="25,0,29,0" />
<scope id="2951477311799629428" at="29,0,34,0">
<var name="node" id="2951477311799629428" />
<var name="propertyValue" id="2951477311799629428" />
</scope>
<scope id="2951477311799629350" at="22,84,35,22">
<var name="properties" id="2951477311799629350" />
</scope>
<scope id="2951477311799629350" at="21,0,37,0" />
<unit id="2951477311799629428" at="24,137,34,5" name="SumTypes.constraints.CaseCase_Constraints$1" />
<unit id="2951477311799629350" at="16,0,38,0" name="SumTypes.constraints.CaseCase_Constraints" />
</file>
</root>
<root nodeRef="r:974e8c2a-7080-4ca5-bdab-6d74431c3763(SumTypes.constraints)/7618853173233427716">
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -4982,13 +4982,13 @@
<node concept="liA8E" id="sW" role="2OqNvi">
<ref role="37wK5l" to="bzg8:~ConceptDescriptorBuilder2.parent(long,long,long):jetbrains.mps.smodel.runtime.impl.ConceptDescriptorBuilder2" resolve="parent" />
<node concept="1adDum" id="sX" role="37wK5m">
<property role="1adDun" value="0xf3061a5392264cc5L" />
<property role="1adDun" value="0xceab519525ea4f22L" />
</node>
<node concept="1adDum" id="sY" role="37wK5m">
<property role="1adDun" value="0xa443f952ceaf5816L" />
<property role="1adDun" value="0x9b92103b95ca8c0cL" />
</node>
<node concept="1adDum" id="sZ" role="37wK5m">
<property role="1adDun" value="0x11a3afa8c0dL" />
<property role="1adDun" value="0x110396eaaa4L" />
</node>
</node>
</node>
......@@ -5854,13 +5854,13 @@
<node concept="liA8E" id="yd" role="2OqNvi">
<ref role="37wK5l" to="bzg8:~ConceptDescriptorBuilder2.parent(long,long,long):jetbrains.mps.smodel.runtime.impl.ConceptDescriptorBuilder2" resolve="parent" />
<node concept="1adDum" id="ye" role="37wK5m">
<property role="1adDun" value="0xf3061a5392264cc5L" />
<property role="1adDun" value="0xceab519525ea4f22L" />
</node>
<node concept="1adDum" id="yf" role="37wK5m">
<property role="1adDun" value="0xa443f952ceaf5816L" />
<property role="1adDun" value="0x9b92103b95ca8c0cL" />
</node>
<node concept="1adDum" id="yg" role="37wK5m">
<property role="1adDun" value="0x11a3afa8c0dL" />
<property role="1adDun" value="0x110396eaaa4L" />
</node>
</node>
</node>
......@@ -8299,13 +8299,13 @@
<node concept="liA8E" id="KM" role="2OqNvi">
<ref role="37wK5l" to="bzg8:~ConceptDescriptorBuilder2.parent(long,long,long):jetbrains.mps.smodel.runtime.impl.ConceptDescriptorBuilder2" resolve="parent" />
<node concept="1adDum" id="KN" role="37wK5m">
<property role="1adDun" value="0xf3061a5392264cc5L" />
<property role="1adDun" value="0xceab519525ea4f22L" />
</node>
<node concept="1adDum" id="KO" role="37wK5m">
<property role="1adDun" value="0xa443f952ceaf5816L" />
<property role="1adDun" value="0x9b92103b95ca8c0cL" />
</node>
<node concept="1adDum" id="KP" role="37wK5m">
<property role="1adDun" value="0x11a3afa8c0dL" />
<property role="1adDun" value="0x110396eaaa4L" />
</node>
</node>
</node>
......
......@@ -97,5 +97,127 @@
</node>
</node>
</node>
<node concept="1M2fIO" id="2zPKfCWs05G">
<property role="3GE5qa" value="term" />
<ref role="1M2myG" to="xkot:1Da9ityUTbw" resolve="Var" />
<node concept="EnEH3" id="2zPKfCWs06U" role="1MhHOB">
<ref role="EomxK" to="tpck:h0TrG11" resolve="name" />
<node concept="QB0g5" id="2zPKfCWs06Y" role="QCWH9">
<node concept="3clFbS" id="2zPKfCWs06Z" role="2VODD2">
<node concept="3clFbF" id="2zPKfCWs0eo" role="3cqZAp">
<node concept="1Wc70l" id="51sf_c1q$OG" role="3clFbG">
<node concept="1Wc70l" id="51sf_c1qxRL" role="3uHU7B">
<node concept="2OqwBi" id="65XyadYKJgV" role="3uHU7B">
<node concept="1Wqviy" id="65XyadYKJgW" role="2Oq$k0" />
<node concept="liA8E" id="65XyadYKJgX" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.matches(java.lang.String):boolean" resolve="matches" />
<node concept="Xl_RD" id="65XyadYKJgY" role="37wK5m">
<property role="Xl_RC" value="[a-zA-Z$][a-zA-Z0-9$]*" />
</node>
</node>
</node>
<node concept="3fqX7Q" id="51sf_c1qz$0" role="3uHU7w">
<node concept="2OqwBi" id="51sf_c1qz$2" role="3fr31v">
<node concept="Xl_RD" id="51sf_c1qz$3" role="2Oq$k0">
<property role="Xl_RC" value="true" />
</node>
<node concept="liA8E" id="51sf_c1qz$4" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object):boolean" resolve="equals" />
<node concept="1Wqviy" id="51sf_c1qzGL" role="37wK5m" />
</node>
</node>
</node>
</node>
<node concept="3fqX7Q" id="51sf_c1q_27" role="3uHU7w">
<node concept="2OqwBi" id="51sf_c1q_28" role="3fr31v">
<node concept="Xl_RD" id="51sf_c1q_29" role="2Oq$k0">
<property role="Xl_RC" value="false" />
</node>
<node concept="liA8E" id="51sf_c1q_2a" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object):boolean" resolve="equals" />
<node concept="1Wqviy" id="51sf_c1q_2b" role="37wK5m" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1M2fIO" id="2zPKfCWsh1Z">
<property role="3GE5qa" value="term" />
<ref role="1M2myG" to="xkot:1Da9ityUTcU" resolve="Let" />
<node concept="EnEH3" id="2zPKfCWshdK" role="1MhHOB">
<ref role="EomxK" to="tpck:h0TrG11" resolve="name" />
<node concept="QB0g5" id="51sf_c1q_rl" role="QCWH9">
<node concept="3clFbS" id="51sf_c1q_rm" role="2VODD2">
<node concept="3clFbF" id="51sf_c1q_yE" role="3cqZAp">
<node concept="1Wc70l" id="51sf_c1qAVO" role="3clFbG">
<node concept="3fqX7Q" id="51sf_c1q_yG" role="3uHU7B">
<node concept="2OqwBi" id="51sf_c1q_yH" role="3fr31v">
<node concept="Xl_RD" id="51sf_c1q_yI" role="2Oq$k0">
<property role="Xl_RC" value="true" />
</node>
<node concept="liA8E" id="51sf_c1q_yJ" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object):boolean" resolve="equals" />
<node concept="1Wqviy" id="51sf_c1q_yK" role="37wK5m" />
</node>
</node>
</node>
<node concept="3fqX7Q" id="51sf_c1qB6E" role="3uHU7w">
<node concept="2OqwBi" id="51sf_c1qB6F" role="3fr31v">
<node concept="Xl_RD" id="51sf_c1qB6G" role="2Oq$k0">
<property role="Xl_RC" value="false" />
</node>
<node concept="liA8E" id="51sf_c1qB6H" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object):boolean" resolve="equals" />
<node concept="1Wqviy" id="51sf_c1qB6I" role="37wK5m" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1M2fIO" id="2zPKfCWshoA">
<property role="3GE5qa" value="term" />
<ref role="1M2myG" to="xkot:1Da9ityUUyE" resolve="CaseCase" />
<node concept="EnEH3" id="2zPKfCWshpO" role="1MhHOB">
<ref role="EomxK" to="tpck:h0TrG11" resolve="name" />
<node concept="QB0g5" id="2zPKfCWshpS" role="QCWH9">
<node concept="3clFbS" id="2zPKfCWshpT" role="2VODD2">
<node concept="3clFbF" id="2zPKfCWshpU" role="3cqZAp">
<node concept="1Wc70l" id="2zPKfCWshpV" role="3clFbG">
<node concept="3fqX7Q" id="2zPKfCWshpW" role="3uHU7B">
<node concept="2OqwBi" id="2zPKfCWshpX" role="3fr31v">
<node concept="Xl_RD" id="2zPKfCWshpY" role="2Oq$k0">
<property role="Xl_RC" value="true" />
</node>
<node concept="liA8E" id="2zPKfCWshpZ" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object):boolean" resolve="equals" />
<node concept="1Wqviy" id="2zPKfCWshq0" role="37wK5m" />
</node>
</node>
</node>
<node concept="3fqX7Q" id="2zPKfCWshq1" role="3uHU7w">
<node concept="2OqwBi" id="2zPKfCWshq2" role="3fr31v">
<node concept="Xl_RD" id="2zPKfCWshq3" role="2Oq$k0">
<property role="Xl_RC" value="false" />
</node>
<node concept="liA8E" id="2zPKfCWshq4" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object):boolean" resolve="equals" />
<node concept="1Wqviy" id="2zPKfCWshq5" role="37wK5m" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</model>
......@@ -99,18 +99,12 @@
<property role="3GE5qa" value="term" />
<ref role="1XX52x" to="xkot:1Da9ityUTci" resolve="Mult" />
<node concept="3EZMnI" id="1Da9ityUVqe" role="2wV5jI">
<node concept="3F0ifn" id="1Da9ityUVqr" role="3EZMnx">
<property role="3F0ifm" value="wrap" />
</node>
<node concept="3F1sOY" id="1Da9ityUVr3" role="3EZMnx">
<ref role="1NtTu8" to="xkot:1Da9ityUTcn" resolve="t1" />
</node>
<node concept="3F0ifn" id="1Da9ityUVsb" role="3EZMnx">
<property role="3F0ifm" value="+" />
</node>
<node concept="3F0ifn" id="1Da9ityUVrl" role="3EZMnx">
<property role="3F0ifm" value="wrap" />
</node>
<node concept="3F1sOY" id="1Da9ityUVrH" role="3EZMnx">
<ref role="1NtTu8" to="xkot:1Da9ityUTcr" resolve="t2" />
</node>
......@@ -163,22 +157,14 @@
<node concept="3F0ifn" id="1Da9ityUVC5" role="3EZMnx">
<property role="3F0ifm" value="lam" />
</node>
<node concept="3F0ifn" id="1Da9ityUVCh" role="3EZMnx">
<property role="3F0ifm" value="{" />
</node>
<node concept="3F0ifn" id="1Da9ityUVCz" role="3EZMnx">
<property role="3F0ifm" value="name" />
</node>
<node concept="3F0ifn" id="1Da9ityUVCV" role="3EZMnx">
<property role="3F0ifm" value="}" />
<node concept="3F0A7n" id="2zPKfCWrZC2" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
<node concept="3F0ifn" id="1Da9ityUVDp" role="3EZMnx">
<node concept="3F0ifn" id="6hDWkHFKSJi" role="3EZMnx">
<property role="3F0ifm" value="." />
</node>
<node concept="1kIj98" id="6JCho9VC0is" role="3EZMnx">
<node concept="3F1sOY" id="6JCho9VC0iS" role="1kIj9b">
<ref role="1NtTu8" to="xkot:1Da9ityUTcQ" resolve="t" />
</node>
<node concept="3F1sOY" id="6hDWkHFKSJQ" role="3EZMnx">
<ref role="1NtTu8" to="xkot:1Da9ityUTcQ" resolve="t" />
</node>
<node concept="l2Vlx" id="1Da9ityUVBV" role="2iSdaV" />
</node>
......
......@@ -7,7 +7,6 @@
</languages>
<imports>
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="tpee" ref="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" implicit="true" />
</imports>
<registry>
<language id="c72da2b9-7cce-4447-8389-f407dc1158b7" name="jetbrains.mps.lang.structure">
......@@ -79,8 +78,8 @@
<property role="TrG5h" value="Var" />
<property role="3GE5qa" value="term" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="PrWs8" id="6AVADwUy$xJ" role="PzmwI">
<ref role="PrY4T" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
<node concept="PrWs8" id="2zPKfCWrZVg" role="PzmwI">
<ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
<node concept="PrWs8" id="1Da9ityUTbU" role="PzmwI">
<ref role="PrY4T" node="1Da9ityUTbh" resolve="Term" />
......@@ -140,8 +139,8 @@
<property role="34LRSv" value="lam" />
<property role="3GE5qa" value="term" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="PrWs8" id="6AVADwUzymP" role="PzmwI">
<ref role="PrY4T" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
<node concept="PrWs8" id="2zPKfCWrZBU" role="PzmwI">
<ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
<node concept="PrWs8" id="1Da9ityUTcI" role="PzmwI">
<ref role="PrY4T" node="1Da9ityUTbh" resolve="Term" />
......@@ -160,7 +159,7 @@
<property role="34LRSv" value="let" />
<property role="3GE5qa" value="term" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="PrWs8" id="1Da9ityUTcV" role="PzmwI">
<node concept="PrWs8" id="2zPKfCWsh1u" role="PzmwI">
<ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
<node concept="PrWs8" id="1Da9ityUTd6" role="PzmwI">
......@@ -400,8 +399,8 @@
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="1Da9ityUTbh" resolve="Term" />
</node>
<node concept="PrWs8" id="6AVADwUzymX" role="PzmwI">
<ref role="PrY4T" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
<node concept="PrWs8" id="2zPKfCWsho8" role="PzmwI">
<ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
</node>
<node concept="PlHQZ" id="6VVZNB9kYY6">
......
<?xml version="1.0" encoding="UTF-8"?>
<dependenciesRoot>
<dependency className="SumTypes.constraints.CaseCase_Constraints">
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.util.HashMap" />
<classNode dependClassName="java.util.Map" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.ids.MetaIdFactory" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="jetbrains.mps.smodel.runtime.PropertyConstraintsDescriptor" />
<classNode dependClassName="jetbrains.mps.smodel.runtime.base.BasePropertyConstraintsDescriptor" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SProperty" />
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
<classNode extendsClassName="jetbrains.mps.smodel.runtime.base.BaseConstraintsDescriptor" />
</dependency>
<dependency className="SumTypes.constraints.ConstraintsAspectDescriptor">
<classNode dependClassName="SumTypes.constraints.CaseCase_Constraints" />
<classNode dependClassName="SumTypes.constraints.Lam_Constraints" />
<classNode dependClassName="SumTypes.constraints.Let_Constraints" />
<classNode dependClassName="SumTypes.constraints.Var_Constraints" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="jetbrains.mps.lang.smodel.ConceptSwitchIndex" />
<classNode dependClassName="jetbrains.mps.lang.smodel.ConceptSwitchIndexBuilder" />
......@@ -25,5 +42,33 @@
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
<classNode extendsClassName="jetbrains.mps.smodel.runtime.base.BaseConstraintsDescriptor" />
</dependency>
<dependency className="SumTypes.constraints.Let_Constraints">
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.util.HashMap" />
<classNode dependClassName="java.util.Map" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.ids.MetaIdFactory" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="jetbrains.mps.smodel.runtime.PropertyConstraintsDescriptor" />
<classNode dependClassName="jetbrains.mps.smodel.runtime.base.BasePropertyConstraintsDescriptor" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SProperty" />
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
<classNode extendsClassName="jetbrains.mps.smodel.runtime.base.BaseConstraintsDescriptor" />
</dependency>
<dependency className="SumTypes.constraints.Var_Constraints">
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.util.HashMap" />
<classNode dependClassName="java.util.Map" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.ids.MetaIdFactory" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="jetbrains.mps.smodel.runtime.PropertyConstraintsDescriptor" />
<classNode dependClassName="jetbrains.mps.smodel.runtime.base.BasePropertyConstraintsDescriptor" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SProperty" />
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
<classNode extendsClassName="jetbrains.mps.smodel.runtime.base.BaseConstraintsDescriptor" />
</dependency>
</dependenciesRoot>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-2gaiqkfxnhjllvdlappqiddy0hgtvo0">
<files names="ConstraintsAspectDescriptor.java:Lam_Constraints.java" />
<product version="3" modelHash="-ae17k825ga15mwtrwvbvg1p5pz71ceu">
<files names="CaseCase_Constraints.java:ConstraintsAspectDescriptor.java:Lam_Constraints.java:Let_Constraints.java:Var_Constraints.java" />
</product>
......@@ -301,7 +301,6 @@
<classNode dependClassName="SumTypes.editor.App_Editor" />
<classNode dependClassName="SumTypes.editor.CaseCase_Editor" />
<classNode dependClassName="SumTypes.editor.Fun_Editor" />
<classNode dependClassName="SumTypes.editor.Lam_Editor" />
<classNode dependClassName="SumTypes.editor.Let_Editor" />
<classNode dependClassName="SumTypes.editor.Succ_Editor" />
<classNode dependClassName="SumTypes.editor.Sum_Editor" />
......@@ -857,31 +856,40 @@
<classNode extendsClassName="jetbrains.mps.nodeEditor.DefaultNodeEditor" />
</dependency>
<dependency className="SumTypes.editor.Lam_EditorBuilder_a">
<classNode dependClassName="com.mbeddr.mpsutil.grammarcells.runtime.CellActionWithReadAccess" />
<classNode dependClassName="java.lang.Iterable" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes" />
<classNode dependClassName="java.util.Objects" />
<classNode dependClassName="jetbrains.mps.editor.runtime.impl.cellActions.CellAction_DeleteSPropertyOrNode" />
<classNode dependClassName="jetbrains.mps.editor.runtime.impl.cellActions.CellAction_DeleteSmart" />
<classNode dependClassName="jetbrains.mps.editor.runtime.selection.SelectionUtil" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.IWhereFilter" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.Sequence" />
<classNode dependClassName="jetbrains.mps.lang.core.behavior.PropertyAttribute__BehaviorDescriptor" />
<classNode dependClassName="jetbrains.mps.lang.editor.cellProviders.SingleRoleCellProvider" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SConceptOperations" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.AttributeOperations" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.IAttributeDescriptor" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations" />
<classNode dependClassName="jetbrains.mps.nodeEditor.EditorManager" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellActions.CellAction_DeleteNode" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellLayout.CellLayout_Indent" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellMenu.SChildSubstituteInfo" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellMenu.SEmptyContainmentSubstituteInfo" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellMenu.SPropertySubstituteInfo" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cells.EditorCell_Collection" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cells.EditorCell_Constant" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cells.EditorCell_Property" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cells.SPropertyAccessor" />
<classNode dependClassName="jetbrains.mps.openapi.editor.EditorContext" />
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.CellActionType" />
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.DefaultSubstituteInfo" />
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.EditorCell" />
<classNode dependClassName="jetbrains.mps.openapi.editor.menus.transformation.SNodeLocation" />
<classNode dependClassName="jetbrains.mps.openapi.editor.selection.SelectionManager" />
<classNode dependClassName="jetbrains.mps.openapi.editor.menus.transformation.SPropertyInfo" />
<classNode dependClassName="jetbrains.mps.openapi.editor.update.AttributeKind" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="org.jetbrains.annotations.NotNull" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SAbstractConcept" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SContainmentLink" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SProperty" />
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
<classNode extendsClassName="jetbrains.mps.editor.runtime.descriptor.AbstractEditorBuilder" />
</dependency>
......
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-1b1w0cis4td94apx8i8l4w056zpaxxc">
<product version="3" modelHash="2gsex5x194ml1lk84byf4btxdvnvpdo">
<files names="Add_Editor.java:Add_EditorBuilder_a.java:Anno_Editor.java:Anno_EditorBuilder_a.java:App_Editor.java:App_EditorBuilder_a.java:CaseCase_Editor.java:CaseCase_EditorBuilder_a.java:Case_Editor.java:Case_EditorBuilder_a.java:EditorAspectDescriptorImpl.java:Fun_Editor.java:Fun_EditorBuilder_a.java:GrammarActionsDescriptor.java:GrammarCellsSubstituteMenu_Add.java:GrammarCellsSubstituteMenu_Anno.java:GrammarCellsSubstituteMenu_App.java:GrammarCellsSubstituteMenu_Case.java:GrammarCellsSubstituteMenu_CaseCase.java:GrammarCellsSubstituteMenu_Fun.java:GrammarCellsSubstituteMenu_IModuleElem.java:GrammarCellsSubstituteMenu_InL.java:GrammarCellsSubstituteMenu_InR.java:GrammarCellsSubstituteMenu_Lam.java:GrammarCellsSubstituteMenu_Let.java:GrammarCellsSubstituteMenu_Module.java:GrammarCellsSubstituteMenu_ModuleElemDef.java:GrammarCellsSubstituteMenu_ModuleElemEmpty.java:GrammarCellsSubstituteMenu_ModuleImport.java:GrammarCellsSubstituteMenu_Mult.java:GrammarCellsSubstituteMenu_Nat.java:GrammarCellsSubstituteMenu_ParensTerm.java:GrammarCellsSubstituteMenu_ParensType.java:GrammarCellsSubstituteMenu_Succ.java:GrammarCellsSubstituteMenu_Sum.java:GrammarCellsSubstituteMenu_Term.java:GrammarCellsSubstituteMenu_Type.java:GrammarCellsSubstituteMenu_Var.java:GrammarCellsSubstituteMenu_Zero.java:InL_Editor.java:InL_EditorBuilder_a.java:InR_Editor.java:InR_EditorBuilder_a.java:Lam_Editor.java:Lam_EditorBuilder_a.java:Let_Editor.java:Let_EditorBuilder_a.java:ModuleElemDef_Editor.java:ModuleElemDef_EditorBuilder_a.java:ModuleElemEmpty_SubstituteMenu.java:ModuleImport_Editor.java:ModuleImport_EditorBuilder_a.java:Module_Editor.java:Module_EditorBuilder_a.java:Mult_Editor.java:Mult_EditorBuilder_a.java:Nat_Editor.java:Nat_EditorBuilder_a.java:ParensTerm_Editor.java:ParensTerm_EditorBuilder_a.java:ParensType_Editor.java:ParensType_EditorBuilder_a.java:Succ_Editor.java:Succ_EditorBuilder_a.java:Sum_Editor.java:Sum_EditorBuilder_a.java:Var_Editor.java:Var_EditorBuilder_a.java:Zero_Editor.java:Zero_EditorBuilder_a.java:template_GrammarCellsSideTransformationsMenu.java" />
</product>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="9okeozvydqr9inl3ttzuwq9x1dg56iz">
<product version="3" modelHash="880s55ju1gocina7eff59r6c81e6dsq">
<files names="Language.java" />
</product>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-8yuqhxs0dkrnixb6s73iybyf94iuqiz">
<product version="3" modelHash="17n1fs0ic3yht1xwze65halwbr8a98i">
<files names="ConceptPresentationAspectImpl.java:LanguageConceptSwitch.java:StructureAspectDescriptor.java" />
</product>
package SumTypes.constraints;
/*Generated by MPS */
import jetbrains.mps.smodel.runtime.base.BaseConstraintsDescriptor;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import java.util.Map;
import org.jetbrains.mps.openapi.language.SProperty;
import jetbrains.mps.smodel.runtime.PropertyConstraintsDescriptor;
import java.util.HashMap;
import jetbrains.mps.smodel.runtime.base.BasePropertyConstraintsDescriptor;
import jetbrains.mps.smodel.adapter.ids.MetaIdFactory;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations;
public class CaseCase_Constraints extends BaseConstraintsDescriptor {
public CaseCase_Constraints() {
super(MetaAdapterFactory.getConcept(0x8d2332833fa47ceL, 0x89dfdaaa7554f251L, 0x1a4a252762eba8aaL, "SumTypes.structure.CaseCase"));
}
@Override
protected Map<SProperty, PropertyConstraintsDescriptor> getSpecifiedProperties() {
Map<SProperty, PropertyConstraintsDescriptor> properties = new HashMap<SProperty, PropertyConstraintsDescriptor>();
properties.put(MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"), new BasePropertyConstraintsDescriptor(MetaIdFactory.propId(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L), this) {
@Override
public boolean hasOwnValidator() {
return true;
}
@Override
public boolean validateValue(SNode node, String propertyValue) {
String propertyName = "name";
return !("true".equals((SPropertyOperations.getString(propertyValue)))) && !("false".equals((SPropertyOperations.getString(propertyValue))));
}
});
return properties;
}
}
......@@ -19,10 +19,16 @@ public class ConstraintsAspectDescriptor extends BaseConstraintsAspectDescriptor
SAbstractConcept cncpt = concept;
switch (conceptIndex.index(cncpt)) {
case 0:
return new CaseCase_Constraints();
case 1:
return new Lam_Constraints();