Commit 94e05f48 authored by André Pacak's avatar André Pacak

Experiment with recursion detection in type lang

parent 1ca4ba2d
......@@ -7,7 +7,213 @@
</languages>
<imports>
<import index="b83y" ref="r:63340c72-1a1f-4a8d-acb4-c73b4c9c590a(TypeLang.structure)" />
<import index="tpce" ref="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" implicit="true" />
</imports>
<registry />
<registry>
<language id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior">
<concept id="6496299201655527393" name="jetbrains.mps.lang.behavior.structure.LocalBehaviorMethodCall" flags="nn" index="BsUDl" />
<concept id="1225194240794" name="jetbrains.mps.lang.behavior.structure.ConceptBehavior" flags="ng" index="13h7C7">
<reference id="1225194240799" name="concept" index="13h7C2" />
<child id="1225194240805" name="method" index="13h7CS" />
<child id="1225194240801" name="constructor" index="13h7CW" />
</concept>
<concept id="1225194413805" name="jetbrains.mps.lang.behavior.structure.ConceptConstructorDeclaration" flags="in" index="13hLZK" />
<concept id="1225194472830" name="jetbrains.mps.lang.behavior.structure.ConceptMethodDeclaration" flags="ng" index="13i0hz" />
<concept id="1225194691553" name="jetbrains.mps.lang.behavior.structure.ThisNodeExpression" flags="nn" index="13iPFW" />
</language>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
<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="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
<child id="1137022507850" name="body" index="2VODD2" />
</concept>
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
<concept id="1068498886292" name="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" flags="ir" index="37vLTG" />
<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="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
<child id="1068580123156" name="expression" index="3clFbG" />
</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="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="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="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="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures">
<concept id="1199569711397" name="jetbrains.mps.baseLanguage.closures.structure.ClosureLiteral" flags="nn" index="1bVj0M">
<child id="1199569906740" name="parameter" index="1bW2Oz" />
<child id="1199569916463" name="body" index="1bW5cS" />
</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="1138411891628" name="jetbrains.mps.lang.smodel.structure.SNodeOperation" flags="nn" index="eCIE_">
<child id="1144104376918" name="parameter" index="1xVPHs" />
</concept>
<concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
<concept id="1171305280644" name="jetbrains.mps.lang.smodel.structure.Node_GetDescendantsOperation" flags="nn" index="2Rf3mk" />
<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="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
<child id="1207343664468" name="conceptArgument" index="ri$Ld" />
</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="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
<reference id="1138056516764" name="link" index="3Tt5mk" />
</concept>
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
<property id="1193676396447" name="virtualPackage" index="3GE5qa" />
</concept>
<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="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
<concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
<child id="1204796294226" name="closure" index="23t8la" />
</concept>
<concept id="1235566554328" name="jetbrains.mps.baseLanguage.collections.structure.AnyOperation" flags="nn" index="2HwmR7" />
<concept id="1203518072036" name="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" flags="ig" index="Rh6nW" />
</language>
</registry>
<node concept="13h7C7" id="6G$bWLkuTHf">
<ref role="13h7C2" to="b83y:2_58u12cYEI" resolve="TypeLangModule" />
<node concept="13i0hz" id="6G$bWLkuTHq" role="13h7CS">
<property role="TrG5h" value="hasRecursiveInputs" />
<node concept="3Tm1VV" id="6G$bWLkuTHr" role="1B3o_S" />
<node concept="10P_77" id="6G$bWLkuTHM" role="3clF45" />
<node concept="3clFbS" id="6G$bWLkuTHt" role="3clF47">
<node concept="3clFbF" id="6G$bWLkuTP2" role="3cqZAp">
<node concept="2OqwBi" id="6G$bWLkv6hN" role="3clFbG">
<node concept="2OqwBi" id="6G$bWLkuTZw" role="2Oq$k0">
<node concept="13iPFW" id="6G$bWLkuTP1" role="2Oq$k0" />
<node concept="2Rf3mk" id="6G$bWLkuYh2" role="2OqNvi">
<node concept="1xMEDy" id="6G$bWLkuYh4" role="1xVPHs">
<node concept="chp4Y" id="6G$bWLkuY_Y" role="ri$Ld">
<ref role="cht4Q" to="b83y:2_58u12cYwo" resolve="Sort" />
</node>
</node>
</node>
</node>
<node concept="2HwmR7" id="6G$bWLkv9H$" role="2OqNvi">
<node concept="1bVj0M" id="6G$bWLkv9HA" role="23t8la">
<node concept="3clFbS" id="6G$bWLkv9HB" role="1bW5cS">
<node concept="3clFbF" id="6G$bWLkv9Pf" role="3cqZAp">
<node concept="2OqwBi" id="6G$bWLkva1t" role="3clFbG">
<node concept="37vLTw" id="6G$bWLkv9Pe" role="2Oq$k0">
<ref role="3cqZAo" node="6G$bWLkv9HC" resolve="it" />
</node>
<node concept="2qgKlT" id="6G$bWLkvbEr" role="2OqNvi">
<ref role="37wK5l" node="6G$bWLkuTK6" resolve="isRecursiveInput" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6G$bWLkv9HC" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6G$bWLkv9HD" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="13hLZK" id="6G$bWLkuTHg" role="13h7CW">
<node concept="3clFbS" id="6G$bWLkuTHh" role="2VODD2" />
</node>
</node>
<node concept="13h7C7" id="6G$bWLkuTJV">
<property role="3GE5qa" value="judgment" />
<ref role="13h7C2" to="b83y:2_58u12cYwo" resolve="Sort" />
<node concept="13i0hz" id="6G$bWLkvsQx" role="13h7CS">
<property role="TrG5h" value="isRecursiveConcept" />
<node concept="3Tm1VV" id="6G$bWLkvsQy" role="1B3o_S" />
<node concept="10P_77" id="6G$bWLkvsW7" role="3clF45" />
<node concept="3clFbS" id="6G$bWLkvsQ$" role="3clF47">
<node concept="3clFbF" id="6G$bWLkvu08" role="3cqZAp">
<node concept="3clFbT" id="6G$bWLkvxHM" role="3clFbG">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
<node concept="37vLTG" id="6G$bWLkvt1v" role="3clF46">
<property role="TrG5h" value="concept" />
<node concept="3Tqbb2" id="6G$bWLkvt1u" role="1tU5fm">
<ref role="ehGHo" to="tpce:h0PkWnZ" resolve="AbstractConceptDeclaration" />
</node>
</node>
</node>
<node concept="13i0hz" id="6G$bWLkuTK6" role="13h7CS">
<property role="TrG5h" value="isRecursiveInput" />
<node concept="3Tm1VV" id="6G$bWLkuTK7" role="1B3o_S" />
<node concept="10P_77" id="6G$bWLkuTKu" role="3clF45" />
<node concept="3clFbS" id="6G$bWLkuTK9" role="3clF47">
<node concept="3clFbF" id="6G$bWLkvjhi" role="3cqZAp">
<node concept="1Wc70l" id="6G$bWLkvsBM" role="3clFbG">
<node concept="BsUDl" id="6G$bWLkvt25" role="3uHU7w">
<ref role="37wK5l" node="6G$bWLkvsQx" resolve="isRecursiveConcept" />
<node concept="2OqwBi" id="6G$bWLkvth3" role="37wK5m">
<node concept="13iPFW" id="6G$bWLkvt6V" role="2Oq$k0" />
<node concept="3TrEf2" id="6G$bWLkvtHD" role="2OqNvi">
<ref role="3Tt5mk" to="b83y:2_58u12cYws" resolve="sort" />
</node>
</node>
</node>
<node concept="2OqwBi" id="6G$bWLkvk55" role="3uHU7B">
<node concept="2OqwBi" id="6G$bWLkvjqK" role="2Oq$k0">
<node concept="13iPFW" id="6G$bWLkvjhh" role="2Oq$k0" />
<node concept="3TrEf2" id="6G$bWLkvjMR" role="2OqNvi">
<ref role="3Tt5mk" to="b83y:2_58u12cYDi" resolve="mode" />
</node>
</node>
<node concept="1mIQ4w" id="6G$bWLkvpGg" role="2OqNvi">
<node concept="chp4Y" id="6G$bWLkvpOl" role="cj9EA">
<ref role="cht4Q" to="b83y:2_58u12cYDo" resolve="SortInputMode" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="13hLZK" id="6G$bWLkuTJW" role="13h7CW">
<node concept="3clFbS" id="6G$bWLkuTJX" role="2VODD2" />
</node>
</node>
</model>
......@@ -401,5 +401,9 @@
</node>
</node>
</node>
<node concept="1M2fIO" id="6G$bWLksoXm">
<property role="3GE5qa" value="judgment" />
<ref role="1M2myG" to="b83y:2_58u12eCWR" resolve="JudgmentInstance1" />
</node>
</model>
......@@ -13,9 +13,9 @@
<import index="mhbf" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)" />
<import index="b83y" ref="r:63340c72-1a1f-4a8d-acb4-c73b4c9c590a(TypeLang.structure)" implicit="true" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="hqsm" ref="r:aa4c3470-43ab-4dad-b73e-20da0ee43be1(org.inca.core.structure)" implicit="true" />
<import index="tpco" ref="r:00000000-0000-4000-0000-011c89590284(jetbrains.mps.lang.core.editor)" implicit="true" />
<import index="tpcn" ref="r:00000000-0000-4000-0000-011c8959028b(jetbrains.mps.lang.structure.behavior)" implicit="true" />
<import index="hqsm" ref="r:aa4c3470-43ab-4dad-b73e-20da0ee43be1(org.inca.core.structure)" implicit="true" />
<import index="gcg1" ref="r:d6f14cc5-a2a7-4aaf-8f86-e35059edbf3b(org.inca.core.behavior)" implicit="true" />
</imports>
<registry>
......@@ -24,12 +24,10 @@
<concept id="1176897764478" name="jetbrains.mps.lang.editor.structure.QueryFunction_NodeFactory" flags="in" index="4$FPG" />
<concept id="1140524381322" name="jetbrains.mps.lang.editor.structure.CellModel_ListWithRole" flags="ng" index="2czfm3">
<property id="1140524450557" name="separatorText" index="2czwfO" />
<property id="1160590307797" name="usesFolding" index="S$F3r" />
<child id="1176897874615" name="nodeFactory" index="4_6I_" />
<child id="1140524464360" name="cellLayout" index="2czzBx" />
<child id="1140524464359" name="emptyCellModel" index="2czzBI" />
<child id="1233141163694" name="separatorStyle" index="sWeuL" />
<child id="6046489571270834038" name="foldedCellModel" index="3EmGlc" />
</concept>
<concept id="1078308402140" name="jetbrains.mps.lang.editor.structure.CellModel_Custom" flags="sg" stub="8104358048506730068" index="gc7cB">
<child id="1176795024817" name="cellProvider" index="3YsKMw" />
......@@ -38,7 +36,6 @@
<concept id="1106270571710" name="jetbrains.mps.lang.editor.structure.CellLayout_Vertical" flags="nn" index="2iRkQZ" />
<concept id="1237303669825" name="jetbrains.mps.lang.editor.structure.CellLayout_Indent" flags="nn" index="l2Vlx" />
<concept id="1237307900041" name="jetbrains.mps.lang.editor.structure.IndentLayoutIndentStyleClassItem" flags="ln" index="lj46D" />
<concept id="1237308012275" name="jetbrains.mps.lang.editor.structure.IndentLayoutNewLineStyleClassItem" flags="ln" index="ljvvj" />
<concept id="1237375020029" name="jetbrains.mps.lang.editor.structure.IndentLayoutNewLineChildrenStyleClassItem" flags="ln" index="pj6Ft" />
<concept id="1142886221719" name="jetbrains.mps.lang.editor.structure.QueryFunction_NodeCondition" flags="in" index="pkWqt" />
<concept id="1142886811589" name="jetbrains.mps.lang.editor.structure.ConceptFunctionParameter_node" flags="nn" index="pncrf" />
......@@ -86,7 +83,6 @@
<child id="1073389446424" name="childCellModel" index="3EZMnx" />
</concept>
<concept id="1073389577006" name="jetbrains.mps.lang.editor.structure.CellModel_Constant" flags="sn" stub="3610246225209162225" index="3F0ifn">
<property id="1082639509531" name="nullText" index="ilYzB" />
<property id="1073389577007" name="text" index="3F0ifm" />
</concept>
<concept id="1073389658414" name="jetbrains.mps.lang.editor.structure.CellModel_Property" flags="sg" stub="730538219796134133" index="3F0A7n" />
......@@ -103,7 +99,6 @@
</concept>
<concept id="1176717841777" name="jetbrains.mps.lang.editor.structure.QueryFunction_ModelAccess_Getter" flags="in" index="3TQlhw" />
<concept id="1176749715029" name="jetbrains.mps.lang.editor.structure.QueryFunction_CellProvider" flags="in" index="3VJUX4" />
<concept id="1198256887712" name="jetbrains.mps.lang.editor.structure.CellModel_Indent" flags="ng" index="3XFhqQ" />
<concept id="1166049232041" name="jetbrains.mps.lang.editor.structure.AbstractComponent" flags="ng" index="1XWOmA">
<reference id="1166049300910" name="conceptDeclaration" index="1XX52x" />
</concept>
......@@ -139,7 +134,6 @@
<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="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
<concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
<child id="1068581517676" name="expression" index="3cqZAk" />
</concept>
......@@ -195,9 +189,6 @@
<concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
<reference id="1138056516764" name="link" index="3Tt5mk" />
</concept>
<concept id="1138056282393" name="jetbrains.mps.lang.smodel.structure.SLinkListAccess" flags="nn" index="3Tsc0h">
<reference id="1138056546658" name="link" index="3TtcxE" />
</concept>
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
......@@ -206,14 +197,13 @@
</concept>
<concept id="709746936026466394" name="jetbrains.mps.lang.core.structure.ChildAttribute" flags="ng" index="3VBwX9">
<property id="709746936026609031" name="linkId" index="3V$3ak" />
<property id="709746936026609029" name="linkRole" index="3V$3am" />
<property id="709746936026609029" name="role_DebugInfo" index="3V$3am" />
</concept>
<concept id="4452961908202556907" name="jetbrains.mps.lang.core.structure.BaseCommentAttribute" flags="ng" index="1X3_iC">
<child id="3078666699043039389" name="commentedNode" index="8Wnug" />
</concept>
</language>
<language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
<concept id="1162935959151" name="jetbrains.mps.baseLanguage.collections.structure.GetSizeOperation" flags="nn" index="34oBXx" />
<concept id="1165530316231" name="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" flags="nn" index="1v1jN8" />
</language>
</registry>
......@@ -348,69 +338,6 @@
</node>
</node>
<node concept="2iRfu4" id="3r83Ks0g9PB" role="2iSdaV" />
<node concept="3XFhqQ" id="3r83Ks0gvLu" role="3EZMnx" />
<node concept="3XFhqQ" id="3r83Ks0gvLr" role="3EZMnx" />
<node concept="3EZMnI" id="7XSydqWQbu" role="3EZMnx">
<node concept="2iRkQZ" id="7XSydqWQbv" role="2iSdaV" />
<node concept="3EZMnI" id="3r83Ks0g9PH" role="3EZMnx">
<node concept="VPM3Z" id="3r83Ks0g9PI" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
<node concept="3F0ifn" id="19a6$uAA8hM" role="3EZMnx">
<property role="3F0ifm" value="imports" />
<ref role="1k5W1q" to="tpen:hgVS8CF" resolve="KeyWord" />
</node>
<node concept="3F0ifn" id="7XSydqWWfC" role="3EZMnx">
<property role="3F0ifm" value=" " />
<node concept="VPxyj" id="7XSydqWXJh" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
<node concept="VPM3Z" id="7XSydqWXK8" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
</node>
<node concept="3F2HdR" id="19a6$uAA8hV" role="3EZMnx">
<property role="S$F3r" value="true" />
<ref role="1NtTu8" to="hqsm:72CZAphwyW3" resolve="imports" />
<node concept="3F0ifn" id="19a6$uAAakq" role="2czzBI">
<property role="ilYzB" value="nothing" />
<ref role="1k5W1q" to="3sc9:2$$_2GR98qK" resolve="Nothing" />
<node concept="VPxyj" id="3FBBKmmMM1E" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="2iRkQZ" id="3r83Ks0g8fR" role="2czzBx" />
<node concept="ljvvj" id="7apEgWbIFgq" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
<node concept="1HlG4h" id="3r83Ks0g8fT" role="3EmGlc">
<node concept="1HfYo3" id="3r83Ks0g8fU" role="1HlULh">
<node concept="3TQlhw" id="3r83Ks0g8fV" role="1Hhtcw">
<node concept="3clFbS" id="3r83Ks0g8fW" role="2VODD2">
<node concept="3cpWs6" id="SSjGGIiEYL" role="3cqZAp">
<node concept="3cpWs3" id="SSjGGIiEYM" role="3cqZAk">
<node concept="Xl_RD" id="SSjGGIiEYN" role="3uHU7w">
<property role="Xl_RC" value=" imports" />
</node>
<node concept="2OqwBi" id="SSjGGIiEYO" role="3uHU7B">
<node concept="2OqwBi" id="SSjGGIiEYP" role="2Oq$k0">
<node concept="pncrf" id="SSjGGIiEYQ" role="2Oq$k0" />
<node concept="3Tsc0h" id="SSjGGIiEYR" role="2OqNvi">
<ref role="3TtcxE" to="hqsm:72CZAphwyW3" resolve="imports" />
</node>
</node>
<node concept="34oBXx" id="SSjGGIiEYS" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="l2Vlx" id="3r83Ks0g9PK" role="2iSdaV" />
</node>
</node>
</node>
<node concept="gc7cB" id="SSjGGIw2Is" role="3EZMnx">
<node concept="3VJUX4" id="SSjGGIw2It" role="3YsKMw">
......@@ -481,9 +408,6 @@
<node concept="VSNWy" id="2_58u12wiTn" role="3F10Kt">
<property role="1lJzqX" value="8" />
</node>
<node concept="11L4FC" id="2_58u12wiTv" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
</node>
</node>
......@@ -1390,5 +1314,13 @@
<node concept="l2Vlx" id="2_58u12uQ7Z" role="2iSdaV" />
</node>
</node>
<node concept="24kQdi" id="6G$bWLkspQR">
<property role="3GE5qa" value="judgment" />
<ref role="1XX52x" to="b83y:6G$bWLkspQH" resolve="SortUserMode" />
<node concept="PMmxH" id="6G$bWLkspQY" role="2wV5jI">
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
<ref role="1k5W1q" to="tpen:hshU_KJ" resolve="Annotation" />
</node>
</node>
</model>
......@@ -585,5 +585,15 @@
<ref role="PrY4T" node="2_58u12fwJB" resolve="JudgmentInstance" />
</node>
</node>
<node concept="1TIwiD" id="6G$bWLkspQH">
<property role="EcuMT" value="7720348215856438701" />
<property role="TrG5h" value="SortUserMode" />
<property role="3GE5qa" value="judgment" />
<property role="34LRSv" value="user" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="PrWs8" id="6G$bWLkspQI" role="PzmwI">
<ref role="PrY4T" node="2_58u12cYDn" resolve="SortMode" />
</node>
</node>
</model>
......@@ -5,7 +5,92 @@
<use id="7a5dda62-9140-4668-ab76-d5ed1746f2b2" name="jetbrains.mps.lang.typesystem" version="1" />
<devkit ref="00000000-0000-4000-0000-1de82b3a4936(jetbrains.mps.devkit.aspect.typesystem)" />
</languages>
<imports />
<registry />
<imports>
<import index="pgas" ref="r:c75f6d0a-e344-4076-8a9a-431398544fab(TypeLang.behavior)" implicit="true" />
<import index="b83y" ref="r:63340c72-1a1f-4a8d-acb4-c73b4c9c590a(TypeLang.structure)" implicit="true" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<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="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
<property id="1070475926801" name="value" index="Xl_RC" />
</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="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
</concept>
</language>
<language id="7a5dda62-9140-4668-ab76-d5ed1746f2b2" name="jetbrains.mps.lang.typesystem">
<concept id="1207055528241" name="jetbrains.mps.lang.typesystem.structure.WarningStatement" flags="nn" index="a7r0C">
<child id="1207055552304" name="warningText" index="a7wSD" />
</concept>
<concept id="1227096774658" name="jetbrains.mps.lang.typesystem.structure.MessageStatement" flags="ng" index="2OEH$v">
<child id="1227096802790" name="nodeToReport" index="2OEOjV" />
</concept>
<concept id="1195213580585" name="jetbrains.mps.lang.typesystem.structure.AbstractCheckingRule" flags="ig" index="18hYwZ">
<child id="1195213635060" name="body" index="18ibNy" />
</concept>
<concept id="1195214364922" name="jetbrains.mps.lang.typesystem.structure.NonTypesystemRule" flags="ig" index="18kY7G" />
<concept id="1174642788531" name="jetbrains.mps.lang.typesystem.structure.ConceptReference" flags="ig" index="1YaCAy">
<reference id="1174642800329" name="concept" index="1YaFvo" />
</concept>
<concept id="1174648085619" name="jetbrains.mps.lang.typesystem.structure.AbstractRule" flags="ng" index="1YuPPy">
<child id="1174648101952" name="applicableNode" index="1YuTPh" />
</concept>
<concept id="1174650418652" name="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" flags="nn" index="1YBJjd">
<reference id="1174650432090" name="applicableNode" index="1YBMHb" />
</concept>
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
<concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
<property id="1193676396447" name="virtualPackage" index="3GE5qa" />
</concept>
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
</registry>
<node concept="18kY7G" id="6G$bWLkvmoM">
<property role="TrG5h" value="check_Sort" />
<property role="3GE5qa" value="judgment" />
<node concept="3clFbS" id="6G$bWLkvmoN" role="18ibNy">
<node concept="3clFbJ" id="6G$bWLkvmoT" role="3cqZAp">
<node concept="2OqwBi" id="6G$bWLkvmyA" role="3clFbw">
<node concept="1YBJjd" id="6G$bWLkvmpb" role="2Oq$k0">
<ref role="1YBMHb" node="6G$bWLkvmoP" resolve="sort" />
</node>
<node concept="2qgKlT" id="6G$bWLkvmZ1" role="2OqNvi">
<ref role="37wK5l" to="pgas:6G$bWLkuTK6" resolve="isRecursiveInput" />
</node>
</node>
<node concept="3clFbS" id="6G$bWLkvmoV" role="3clFbx">
<node concept="a7r0C" id="6G$bWLkvn4f" role="3cqZAp">
<node concept="Xl_RD" id="6G$bWLkvn59" role="a7wSD">
<property role="Xl_RC" value="recursive input" />
</node>
<node concept="1YBJjd" id="6G$bWLkvn4B" role="2OEOjV">
<ref role="1YBMHb" node="6G$bWLkvmoP" resolve="sort" />
</node>
</node>
</node>
</node>
</node>
<node concept="1YaCAy" id="6G$bWLkvmoP" role="1YuTPh">
<property role="TrG5h" value="sort" />
<ref role="1YaFvo" to="b83y:2_58u12cYwo" resolve="Sort" />
</node>
</node>
</model>
......@@ -18,6 +18,7 @@
<reference id="1925259677761400369" name="interfacePart" index="3zVwH8" />
<child id="7089330371250923106" name="pattern" index="bFJCb" />
</concept>
<concept id="7720348215856438701" name="TypeLang.structure.SortUserMode" flags="ng" index="Zlr9x" />
<concept id="2973820376017083148" name="TypeLang.structure.EmptyContent" flags="ng" index="1F53FG" />
<concept id="2973820376019395340" name="TypeLang.structure.JudgmentInstanceEq" flags="ng" index="1FckbG">
<child id="2973820376019849342" name="arg1" index="1FfB6u" />
......@@ -39,6 +40,18 @@
<concept id="2973820376015170141" name="TypeLang.structure.Delimiter" flags="ng" index="1FtGIX">
<property id="2973820376015170142" name="text" index="1FtGIY" />
</concept>
<concept id="2973820376015648664" name="TypeLang.structure.JudgmentInstance2" flags="ng" index="1FvxpS">
<reference id="2973820376015648665" name="judgment" index="1FvxpT" />
<child id="2973820376015648666" name="arg1" index="1FvxpU" />
<child id="2973820376015648667" name="arg2" index="1FvxpV" />
</concept>
<concept id="2973820376015641216" name="TypeLang.structure.JudgmentDeclaration2" flags="ng" index="1FvzHw">
<child id="2973820376015641217" name="pre" index="1FvzHx" />
<child id="2973820376015641218" name="sort1" index="1FvzHy" />
<child id="2973820376015641220" name="sort2" index="1FvzH$" />
<child id="2973820376015642597" name="delimiter2" index="1FvzS5" />
<child id="2973820376015642588" name="delimiter1" index="1FvzSW" />
</concept>
<concept id="2973820376015641227" name="TypeLang.structure.JudgmentDeclaration3" flags="ng" index="1FvzHF">
<child id="2973820376015324577" name="delimiter2" index="1FsQh1" />
<child id="2973820376015641228" name="pre" index="1FvzHG" />
......@@ -71,21 +84,21 @@
</language>
</registry>
<node concept="1FtGHe" id="2_58u12lIcQ">
<property role="TrG5h" value="BidirectionalSTLCN" />
<property role="TrG5h" value="BidirectionalSTLCN_2" />
<node concept="1F53FG" id="2_58u12mvJz" role="1FufQt" />
<node concept="1FvzHF" id="2_58u12mvJS" role="1FufQt">
<property role="TrG5h" value="infer" />
<node concept="1FtGIX" id="2_58u12mvJU" role="1FvzHG" />
<node concept="1FtGBS" id="2_58u12mvJW" role="1FvzHH">
<ref role="1FtGBW" to="5va7:2_58u12slaZ" resolve="Context" />
<node concept="1FtGIS" id="2_58u12nbM8" role="1FtGIM" />
<node concept="1FtGIS" id="6G$bWLkr_b8" role="1FtGIM" />
</node>
<node concept="1FtGIX" id="2_58u12mvJZ" role="1FvzTf">
<property role="1FtGIY" value="|-" />
</node>
<node concept="1FtGBS" id="2_58u12mvK1" role="1FvzHI">
<ref role="1FtGBW" to="5va7:1Da9ityUTbh" resolve="Term" />
<node concept="1FtGIS" id="2_58u12nbMc" role="1FtGIM" />
<node concept="Zlr9x" id="6G$bWLkvv0u" role="1FtGIM" />
</node>
<node concept="1FtGIX" id="2_58u12mvK4" role="1FsQh1">
<property role="1FtGIY" value="=&gt;" />
......@@ -96,28 +109,21 @@
</node>
<node concept="1FtGIX" id="2_58u12mvK9" role="1FvzSA" />
</node>
<node concept="1FvzHF" id="2_58u12nbMJ" role="1FufQt">
<property role="TrG5h" value="check" />
<node concept="1FtGIX" id="2_58u12nbML" role="1FvzHG" />
<node concept="1FtGBS" id="2_58u12nbMN" role="1FvzHH">
<node concept="1FvzHw" id="6G$bWLkr_oa" role="1FufQt">
<property role="TrG5h" value="check_notype" />
<node concept="1FtGIX" id="6G$bWLkr_oc" role="1FvzHx" />
<node concept="1FtGBS" id="6G$bWLkr_oe" role="1FvzHy">
<ref role="1FtGBW" to="5va7:2_58u12slaZ" resolve="Context" />
<node concept="1FtGIS" id="2_58u12nbNK" role="1FtGIM" />
<node concept="1FtGIS" id="6G$bWLksoNm" role="1FtGIM" />
</node>
<node concept="1FtGIX" id="2_58u12nbMQ" role="1FvzTf">
<node concept="1FtGIX" id="6G$bWLkr_oh" role="1FvzSW">
<property role="1FtGIY" value="|-" />
</node>
<node concept="1FtGBS" id="2_58u12nbMS" role="1FvzHI">
<node concept="1FtGBS" id="6G$bWLkr_oj" role="1FvzH$">
<ref role="1FtGBW" to="5va7:1Da9ityUTbh" resolve="Term" />
<node concept="1FtGIS" id="2_58u12nbNO" role="1FtGIM" />
</node>
<node concept="1FtGIX" id="2_58u12nbMV" role="1FsQh1">
<property role="1FtGIY" value="&lt;=" />
</node>
<node concept="1FtGBS" id="2_58u12nbMX" role="1FvzHK">
<ref role="1FtGBW" to="5va7:1Da9ityUTef" resolve="Type" />
<node concept="1FtGIS" id="2_58u12nbNS" role="1FtGIM" />
<node concept="Zlr9x" id="6G$bWLkvv0p" role="1FtGIM" />
</node>
<node concept="1FtGIX" id="2_58u12nbN0" role="1FvzSA" />
<node concept="1FtGIX" id="6G$bWLkr_om" role="1FvzS5" />
</node>
<node concept="1FvzHF" id="2_58u12sjAl" role="1FufQt">
<property role="TrG5h" value="lookup" />
......@@ -167,9 +173,30 @@
</node>
<node concept="1FtGIX" id="2_58u12t5fn" role="1FvzSA" />
</node>
<node concept="1F53FG" id="2_58u12nbOH" role="1FufQt" />
<node concept="1F53FG" id="2_58u12whwr" role="1FufQt" />
<node concept="1F53FG" id="2_58u12whAS" role="1FufQt" />
<node concept="1FvzHF" id="6G$bWLkspAf" role="1FufQt">
<property role="TrG5h" value="required" />
<node concept="1FtGIX" id="6G$bWLkspAh" role="1FvzHG">
<property role="1FtGIY" value="required" />
</node>
<node concept="1FtGBS" id="6G$bWLkspAj" role="1FvzHH">
<ref role="1FtGBW" to="5va7:2_58u12slaZ" resolve="Context" />
<node concept="1FtGIS" id="6G$bWLkspKl" role="1FtGIM" />
</node>
<node concept="1FtGIX" id="6G$bWLkspAm" role="1FvzTf" />
<node concept="1FtGBS" id="6G$bWLkspAo" role="1FvzHI">
<ref role="1FtGBW" to="5va7:1Da9ityUTbh" resolve="Term" />
<node concept="1FtGIS" id="6G$bWLkspKq" role="1FtGIM" />
</node>
<node concept="1FtGIX" id="6G$bWLkspAr" role="1FsQh1">
<property role="1FtGIY" value="=&gt;" />
</node>
<node concept="1FtGBS" id="6G$bWLkspAt" role="1FvzHK">
<ref role="1FtGBW" to="5va7:1Da9ityUTef" resolve="Type" />
<node concept="1FtGIT" id="6G$bWLkspKv" role="1FtGIM" />
</node>
<node concept="1FtGIX" id="6G$bWLkspAw" role="1FvzSA" />
</node>
<node concept="1F53FG" id="6G$bWLkr$ne" role="1FufQt" />
<node concept="1FvUVj" id="2_58u12nbQl" role="1FufQt">
<property role="TrG5h" value="infer Zero" />
<node concept="1FvB8F" id="2_58u12nbSX" role="1FvUUP">
......@@ -206,17 +233,14 @@
<ref role="1F1YRu" to="5va7:1Da9ityUTfG" resolve="Nat" />
</node>
</node>
<node concept="1FvB8F" id="2_58u12shuv" role="1FvUVk">
<ref role="1FvB8G" node="2_58u12nbMJ" resolve="check" />
<node concept="1FvUUU" id="2_58u12shuS" role="1FvB8H">
<node concept="1FvxpS" id="6G$bWLksp0E" role="1FvUVk">
<ref role="1FvxpT" node="6G$bWLkr_oa" resolve="check_notype" />
<node concept="1FvUUU" id="6G$bWLksp1j" role="1FvxpU">
<property role="TrG5h" value="C" />
</node>
<node concept="1FvUUU" id="2_58u12shv3" role="1FvB8I">
<node concept="1FvUUU" id="6G$bWLksp1v" role="1FvxpV">
<property role="TrG5h" value="t" />
</node>
<node concept="27Pwox" id="2_58u12shvF" role="1FvB8J">
<ref role="1F1YRu" to="5va7:1Da9ityUTfG" resolve="Nat" />
</node>
</node>
</node>
<node concept="1F53FG" id="2_58u12shvJ" role="1FufQt" />
......@@ -254,7 +278,7 @@
</node>
<node concept="1F53FG" id="2_58u12sjIn" role="1FufQt" />
<node concept="1FvUVj" id="2_58u12sjOG" role="1FufQt">
<property role="TrG5h" value="infer Ano" />
<property role="TrG5h" value="infer Anno" />
<node concept="1FvB8F" id="2_58u12sjQT" role="1FvUUP">
<ref role="1FvB8G" node="2_58u12mvJS" resolve="infer" />
<node concept="1FvUUU" id="2_58u12sjRj" role="1FvB8H">
......@@ -280,7 +304,7 @@
</node>
</node>
<node concept="1FvB8F" id="2_58u12sjT0" role="1FvUVk">
<ref role="1FvB8G" node="2_58u12nbMJ" resolve="check" />
<ref role="1FvB8G" node="6G$bWLkr_bq" resolve="check" />
<node concept="1FvUUU" id="2_58u12sjTp" role="1FvB8H">
<property role="TrG5h" value="C" />
</node>
......@@ -343,17 +367,14 @@
<property role="TrG5h" value="ty2" />
</node>
</node>
<node concept="1FvB8F" id="2_58u12skve" role="1FvUVk">