Improving the editor for typechecking templates

This commit is contained in:
Fedor Isakov 2015-07-18 15:02:58 +02:00
parent 9192087a9a
commit 0aa8f07213
4 changed files with 657 additions and 104 deletions

View File

@ -66,6 +66,9 @@
<dependency reexport="false">c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.typesystem2)</dependency>
<dependency reexport="false">c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)</dependency>
<dependency reexport="false">ff6372a2-2f45-4ec3-952b-02581666015f(jetbrains.mps.lang.typesystem2.template)</dependency>
<dependency reexport="false">1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)</dependency>
<dependency reexport="false">8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)</dependency>
<dependency reexport="false">6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)</dependency>
</dependencies>
<usedLanguages>
<usedLanguage>daafa647-f1f7-4b0b-b096-69cd7c8408c0(jetbrains.mps.baseLanguage.regexp)</usedLanguage>

View File

@ -8,14 +8,23 @@
</languages>
<imports>
<import index="wq2x" ref="r:83137295-aa87-45e8-b0c0-ede2adf2a396(jetbrains.mps.lang.typesystem2.structure)" />
<import index="tpee" ref="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" implicit="true" />
<import index="5j4j" ref="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" />
<import index="tpee" ref="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" />
<import index="t3eg" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/f:java_stub#8865b7a8-5271-43d3-884c-6fd1d9cfdd34#org.jetbrains.mps.openapi.language(MPS.OpenAPI/org.jetbrains.mps.openapi.language@java_stub)" />
<import index="ymbg" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/f:java_stub#6ed54515-acc8-4d1e-a16c-9fd6cfe951ea#jetbrains.mps.smodel.constraints(MPS.Core/jetbrains.mps.smodel.constraints@java_stub)" />
<import index="vyt2" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/f:java_stub#6ed54515-acc8-4d1e-a16c-9fd6cfe951ea#jetbrains.mps.scope(MPS.Core/jetbrains.mps.scope@java_stub)" />
<import index="tpce" ref="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" implicit="true" />
</imports>
<registry>
<language id="13744753-c81f-424a-9c1b-cf8943bf4e86" name="jetbrains.mps.lang.sharedConcepts">
<concept id="1161622665029" name="jetbrains.mps.lang.sharedConcepts.structure.ConceptFunctionParameter_model" flags="nn" index="1Q6Npb" />
</language>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
<child id="1068498886297" name="rValue" index="37vLTx" />
<child id="1068498886295" name="lValue" index="37vLTJ" />
</concept>
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<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" />
@ -26,6 +35,16 @@
<concept id="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
<child id="1137022507850" name="body" index="2VODD2" />
</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="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
</concept>
<concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
<child id="1070534934091" name="type" index="10QFUM" />
<child id="1070534934092" name="expression" index="10QFUP" />
</concept>
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
<child id="1068431790190" name="initializer" index="33vP2m" />
</concept>
@ -45,19 +64,31 @@
<concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
<property id="1068580123138" name="value" index="3clFbU" />
</concept>
<concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
<property id="1068580320021" name="value" index="3cmrfH" />
</concept>
<concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
</concept>
<concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
<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="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
<reference id="1107535924139" name="classifier" index="3uigEE" />
</concept>
<concept id="6329021646629104957" name="jetbrains.mps.baseLanguage.structure.TextCommentPart" flags="nn" index="3SKdUq">
<property id="6329021646629104958" name="text" index="3SKdUp" />
</concept>
<concept id="6329021646629104954" name="jetbrains.mps.baseLanguage.structure.SingleLineComment" flags="nn" index="3SKdUt">
<child id="6329021646629175155" name="commentPart" index="3SKWNk" />
</concept>
</language>
<language id="aee9cad2-acd4-4608-aef2-0004f6a1cdbd" name="jetbrains.mps.lang.actions">
<concept id="5979988948250981289" name="jetbrains.mps.lang.actions.structure.SNodeCreatorAndInitializer" flags="nn" index="2fJWfE" />
<concept id="1196433923911" name="jetbrains.mps.lang.actions.structure.SideTransform_SimpleString" flags="nn" index="2h1dTh">
<property id="1196433942569" name="text" index="2h1i$Z" />
</concept>
<concept id="1196434649611" name="jetbrains.mps.lang.actions.structure.Substitute_SimpleString" flags="ng" index="2h3Zct">
<property id="1196434851095" name="text" index="2h4Kg1" />
</concept>
<concept id="1177323996388" name="jetbrains.mps.lang.actions.structure.AddMenuPart" flags="ng" index="tYCnQ" />
<concept id="1177327570013" name="jetbrains.mps.lang.actions.structure.QueryFunction_Substitute_Handler" flags="in" index="ucgPf" />
<concept id="1177327666243" name="jetbrains.mps.lang.actions.structure.SimpleItemSubstitutePart" flags="ng" index="ucClh">
@ -68,12 +99,24 @@
<reference id="1177333551023" name="concept" index="uz4UX" />
<child id="1177333559040" name="part" index="uz6Si" />
</concept>
<concept id="1177335944525" name="jetbrains.mps.lang.actions.structure.QueryFunction_SubstituteString" flags="in" index="uGdhv" />
<concept id="1177337641126" name="jetbrains.mps.lang.actions.structure.ParameterizedSubstituteMenuPart" flags="ng" index="uMFAO">
<child id="1177337679534" name="type" index="uMOYW" />
<child id="1177338017561" name="query" index="uO7ob" />
<child id="1177339421668" name="handler" index="uTubQ" />
</concept>
<concept id="1177337833147" name="jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_parameterObject" flags="nn" index="uNquD" />
<concept id="1177337890340" name="jetbrains.mps.lang.actions.structure.QueryFunction_ParameterizedSubstitute_Query" flags="in" index="uNCsQ" />
<concept id="1177339225103" name="jetbrains.mps.lang.actions.structure.QueryFunction_ParameterizedSubstitute_Handler" flags="in" index="uSIkt" />
<concept id="1177402519659" name="jetbrains.mps.lang.actions.structure.WrapperSubstituteMenuPart" flags="ng" index="yEb5T">
<reference id="1177402731616" name="wrappedConcept" index="yEYPM" />
<child id="1177402719158" name="wrapperBlock" index="yEVE$" />
</concept>
<concept id="1177402571666" name="jetbrains.mps.lang.actions.structure.QueryFunction_SubstituteWrapper" flags="in" index="yEnE0" />
<concept id="1177402641904" name="jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_nodeToWrap" flags="nn" index="yECNy" />
<concept id="1177409831820" name="jetbrains.mps.lang.actions.structure.RemovePart" flags="ng" index="z64au">
<reference id="1177409838946" name="conceptToRemove" index="z65TK" />
</concept>
<concept id="1177497140107" name="jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_sourceNode" flags="nn" index="Cj7Ep" />
<concept id="1177498013932" name="jetbrains.mps.lang.actions.structure.SimpleSideTransformMenuPart" flags="ng" index="Cmt7Y">
<child id="1177498166690" name="matchingText" index="Cn2iK" />
@ -81,6 +124,7 @@
</concept>
<concept id="1177498227294" name="jetbrains.mps.lang.actions.structure.QueryFunction_SideTransform_Handler" flags="in" index="Cnhdc" />
<concept id="767145758118872830" name="jetbrains.mps.lang.actions.structure.NF_Link_SetNewChildOperation" flags="nn" index="2DeJnY" />
<concept id="5480835971642155304" name="jetbrains.mps.lang.actions.structure.NF_Model_CreateNewNodeOperation" flags="nn" index="15TzpJ" />
<concept id="1158700664498" name="jetbrains.mps.lang.actions.structure.NodeFactories" flags="ng" index="37WguZ">
<child id="1158700779049" name="nodeFactory" index="37WGs$" />
</concept>
@ -121,15 +165,26 @@
<concept id="1140725362528" name="jetbrains.mps.lang.smodel.structure.Link_SetTargetOperation" flags="nn" index="2oxUTD">
<child id="1140725362529" name="linkTarget" index="2oxUTC" />
</concept>
<concept id="5253134957341697434" name="jetbrains.mps.lang.smodel.structure.LinkNameRefExpression" flags="nn" index="prKvN">
<reference id="5253134957341833005" name="conceptDeclaration" index="prhl4" />
<reference id="5253134957341833006" name="linkDeclaration" index="prhl7" />
</concept>
<concept id="1143235216708" name="jetbrains.mps.lang.smodel.structure.Model_CreateNewNodeOperation" flags="nn" index="I8ghe">
<reference id="1143235391024" name="concept" index="I8UWU" />
</concept>
<concept id="1171407110247" name="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" flags="nn" index="2Xjw5R" />
<concept id="1171999116870" name="jetbrains.mps.lang.smodel.structure.Node_IsNullOperation" flags="nn" index="3w_OXm" />
<concept id="1172008320231" name="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation" flags="nn" index="3x8VRR" />
<concept id="1144100932627" name="jetbrains.mps.lang.smodel.structure.OperationParm_Inclusion" flags="ng" index="1xIGOp" />
<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="1180636770613" name="jetbrains.mps.lang.smodel.structure.SNodeCreator" flags="nn" index="3zrR0B">
<child id="1180636770616" name="createdType" index="3zrR0E" />
</concept>
<concept id="1219352745532" name="jetbrains.mps.lang.smodel.structure.NodeRefExpression" flags="nn" index="3B5_sB">
<reference id="1219352800908" name="referentNode" index="3B5MYn" />
</concept>
<concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
<reference id="1138405853777" name="concept" index="ehGHo" />
</concept>
@ -139,6 +194,9 @@
<concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
<reference id="1138056516764" name="link" index="3Tt5mk" />
</concept>
<concept id="1172424058054" name="jetbrains.mps.lang.smodel.structure.ConceptRefExpression" flags="nn" index="3TUQnm">
<reference id="1172424100906" name="conceptDeclaration" index="3TV0OU" />
</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">
@ -148,82 +206,202 @@
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
<language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
<concept id="1151689724996" name="jetbrains.mps.baseLanguage.collections.structure.SequenceType" flags="in" index="A3Dl8">
<child id="1151689745422" name="elementType" index="A3Ik2" />
</concept>
</language>
</registry>
<node concept="3FK_9_" id="6p0DfM0ptZb">
<property role="TrG5h" value="EmitConstraintStatement" />
<property role="TrG5h" value="Statement_wrap_AbstractConstraint_EmitConstraintStatement" />
<node concept="3FOIzC" id="6p0DfM0pu2x" role="3FOPby">
<ref role="3FOWKa" to="tpee:fzclF8l" resolve="Statement" />
<node concept="tYCnQ" id="6p0DfM0pu5V" role="tZc4B">
<ref role="uz4UX" to="wq2x:6p0DfM0a6KG" resolve="EmitConstraintStatement" />
<node concept="ucClh" id="6p0DfM0pudz" role="uz6Si">
<node concept="ucgPf" id="6p0DfM0pud$" role="ucMEw">
<node concept="3clFbS" id="6p0DfM0pud_" role="2VODD2">
<node concept="3clFbF" id="6p0DfM0puol" role="3cqZAp">
<node concept="2ShNRf" id="6p0DfM0puoj" role="3clFbG">
<node concept="2fJWfE" id="6p0DfM0puyn" role="2ShVmc">
<node concept="3Tqbb2" id="6p0DfM0puyp" role="3zrR0E">
<ref role="ehGHo" to="wq2x:6p0DfM0a6KG" resolve="EmitConstraintStatement" />
<node concept="yEb5T" id="7ksQUDZnVz2" role="uz6Si">
<ref role="yEYPM" to="wq2x:6p0DfM0ajMA" resolve="AbstractConstraint" />
<node concept="yEnE0" id="7ksQUDZnVz4" role="yEVE$">
<node concept="3clFbS" id="7ksQUDZnVz6" role="2VODD2">
<node concept="3cpWs8" id="7ksQUDZnWXh" role="3cqZAp">
<node concept="3cpWsn" id="7ksQUDZnWXi" role="3cpWs9">
<property role="TrG5h" value="ecs" />
<node concept="3Tqbb2" id="7ksQUDZnWXg" role="1tU5fm">
<ref role="ehGHo" to="wq2x:6p0DfM0a6KG" resolve="EmitConstraintStatement" />
</node>
<node concept="2ShNRf" id="7ksQUDZnWXj" role="33vP2m">
<node concept="3zrR0B" id="7ksQUDZnWXk" role="2ShVmc">
<node concept="3Tqbb2" id="7ksQUDZnWXl" role="3zrR0E">
<ref role="ehGHo" to="wq2x:6p0DfM0a6KG" resolve="EmitConstraintStatement" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7ksQUDZnVAO" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZo4uh" role="3clFbG">
<node concept="2OqwBi" id="7ksQUDZnX4a" role="2Oq$k0">
<node concept="37vLTw" id="7ksQUDZnWXm" role="2Oq$k0">
<ref role="3cqZAo" node="7ksQUDZnWXi" resolve="ecs" />
</node>
<node concept="3TrEf2" id="7ksQUDZo41F" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:6p0DfM0ajKO" />
</node>
</node>
<node concept="2oxUTD" id="7ksQUDZo4GA" role="2OqNvi">
<node concept="yECNy" id="7ksQUDZo4Kn" role="2oxUTC" />
</node>
</node>
</node>
<node concept="3clFbF" id="7ksQUDZo4PF" role="3cqZAp">
<node concept="37vLTw" id="7ksQUDZo4PD" role="3clFbG">
<ref role="3cqZAo" node="7ksQUDZnWXi" resolve="ecs" />
</node>
</node>
</node>
</node>
<node concept="2h3Zct" id="6p0DfM0pui7" role="uGu3D">
<property role="2h4Kg1" value="%%" />
</node>
</node>
</node>
</node>
</node>
<node concept="3FK_9_" id="2E5lcNmZaq$">
<property role="TrG5h" value="LogicExpressionWrapper" />
<property role="TrG5h" value="Expression_subst_LogicExpressionWrapper" />
<node concept="3FOIzC" id="2E5lcNmZayb" role="3FOPby">
<ref role="3FOWKa" to="tpee:fz3vP1J" resolve="Expression" />
<node concept="3buRE8" id="2E5lcNmZa$J" role="3bvWUf">
<node concept="3clFbS" id="2E5lcNmZa$K" role="2VODD2">
<node concept="3clFbF" id="2E5lcNmZaJK" role="3cqZAp">
<node concept="2OqwBi" id="2E5lcNmZbIm" role="3clFbG">
<node concept="2OqwBi" id="2E5lcNmZaVy" role="2Oq$k0">
<node concept="3bvxqY" id="2E5lcNmZaJJ" role="2Oq$k0" />
<node concept="2Xjw5R" id="2E5lcNmZbiR" role="2OqNvi">
<node concept="1xMEDy" id="2E5lcNmZbiT" role="1xVPHs">
<node concept="chp4Y" id="2E5lcNmZbvr" role="ri$Ld">
<ref role="cht4Q" to="wq2x:6p0DfM0a6KG" resolve="EmitConstraintStatement" />
</node>
</node>
</node>
</node>
<node concept="3x8VRR" id="2E5lcNmZc8z" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="tYCnQ" id="2E5lcNmZdbU" role="tZc4B">
<ref role="uz4UX" to="wq2x:6p0DfM0pKSO" resolve="LogicExpressionWrapper" />
<node concept="ucClh" id="2E5lcNmZdue" role="uz6Si">
<node concept="ucgPf" id="2E5lcNmZdug" role="ucMEw">
<node concept="3clFbS" id="2E5lcNmZdui" role="2VODD2">
<node concept="3clFbF" id="2E5lcNmZdQT" role="3cqZAp">
<node concept="2ShNRf" id="2E5lcNmZdQR" role="3clFbG">
<node concept="2fJWfE" id="2E5lcNmZi$N" role="2ShVmc">
<node concept="3Tqbb2" id="2E5lcNmZi$P" role="3zrR0E">
<ref role="ehGHo" to="wq2x:6p0DfM0pKSO" resolve="LogicExpressionWrapper" />
<node concept="uMFAO" id="7ksQUDZs6LK" role="uz6Si">
<node concept="3Tqbb2" id="7ksQUDZsaPa" role="uMOYW" />
<node concept="uSIkt" id="7ksQUDZs6LO" role="uTubQ">
<node concept="3clFbS" id="7ksQUDZs6LQ" role="2VODD2">
<node concept="3cpWs8" id="7ksQUDZr_QJ" role="3cqZAp">
<node concept="3cpWsn" id="7ksQUDZr_QK" role="3cpWs9">
<property role="TrG5h" value="lew" />
<node concept="3Tqbb2" id="7ksQUDZr_QI" role="1tU5fm">
<ref role="ehGHo" to="wq2x:6p0DfM0pKSO" resolve="LogicExpressionWrapper" />
</node>
<node concept="2OqwBi" id="7ksQUDZr_QL" role="33vP2m">
<node concept="1Q6Npb" id="7ksQUDZr_QM" role="2Oq$k0" />
<node concept="15TzpJ" id="7ksQUDZswYj" role="2OqNvi">
<ref role="I8UWU" to="wq2x:6p0DfM0pKSO" resolve="LogicExpressionWrapper" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7ksQUDZscxd" role="3cqZAp">
<node concept="3cpWsn" id="7ksQUDZscxe" role="3cpWs9">
<property role="TrG5h" value="lvr" />
<node concept="3Tqbb2" id="7ksQUDZscxc" role="1tU5fm">
<ref role="ehGHo" to="5j4j:7E86$tK_OxQ" resolve="LogicalVariableReference" />
</node>
<node concept="2OqwBi" id="7ksQUDZscxf" role="33vP2m">
<node concept="1Q6Npb" id="7ksQUDZscxg" role="2Oq$k0" />
<node concept="15TzpJ" id="7ksQUDZscxh" role="2OqNvi">
<ref role="I8UWU" to="5j4j:7E86$tK_OxQ" resolve="LogicalVariableReference" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7ksQUDZr_Da" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZrAez" role="3clFbG">
<node concept="2OqwBi" id="7ksQUDZr_Vy" role="2Oq$k0">
<node concept="37vLTw" id="7ksQUDZr_QO" role="2Oq$k0">
<ref role="3cqZAo" node="7ksQUDZr_QK" resolve="lew" />
</node>
<node concept="3TrEf2" id="7ksQUDZrA3Y" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:6p0DfM0pQge" />
</node>
</node>
<node concept="2oxUTD" id="7ksQUDZrAs8" role="2OqNvi">
<node concept="37vLTw" id="7ksQUDZscxi" role="2oxUTC">
<ref role="3cqZAo" node="7ksQUDZscxe" resolve="lvr" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7ksQUDZscFs" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZsdar" role="3clFbG">
<node concept="2OqwBi" id="7ksQUDZscJl" role="2Oq$k0">
<node concept="37vLTw" id="7ksQUDZscFq" role="2Oq$k0">
<ref role="3cqZAo" node="7ksQUDZscxe" resolve="lvr" />
</node>
<node concept="3TrEf2" id="7ksQUDZscVI" role="2OqNvi">
<ref role="3Tt5mk" to="5j4j:7E86$tK_PaH" />
</node>
</node>
<node concept="2oxUTD" id="7ksQUDZsds9" role="2OqNvi">
<node concept="uNquD" id="7ksQUDZsdun" role="2oxUTC" />
</node>
</node>
</node>
<node concept="3clFbF" id="7ksQUDZrAzK" role="3cqZAp">
<node concept="37vLTw" id="7ksQUDZrAzI" role="3clFbG">
<ref role="3cqZAo" node="7ksQUDZr_QK" resolve="lew" />
</node>
</node>
</node>
</node>
<node concept="uNCsQ" id="7ksQUDZs6LS" role="uO7ob">
<node concept="3clFbS" id="7ksQUDZs6LU" role="2VODD2">
<node concept="3SKdUt" id="7ksQUDZszzQ" role="3cqZAp">
<node concept="3SKdUq" id="7ksQUDZszDg" role="3SKWNk">
<property role="3SKdUp" value="see ChildSubstituteActionsHelper" />
</node>
</node>
<node concept="3cpWs8" id="7ksQUDZstKV" role="3cqZAp">
<node concept="3cpWsn" id="7ksQUDZstKW" role="3cpWs9">
<property role="TrG5h" value="srd" />
<node concept="3uibUv" id="7ksQUDZstKS" role="1tU5fm">
<ref role="3uigEE" to="ymbg:~ReferenceDescriptor" resolve="ReferenceDescriptor" />
</node>
<node concept="2YIFZM" id="7ksQUDZstKX" role="33vP2m">
<ref role="37wK5l" to="ymbg:~ModelConstraints.getSmartReferenceDescriptor(org.jetbrains.mps.openapi.model.SNode,java.lang.String,int,org.jetbrains.mps.openapi.model.SNode):jetbrains.mps.smodel.constraints.ReferenceDescriptor" resolve="getSmartReferenceDescriptor" />
<ref role="1Pybhc" to="ymbg:~ModelConstraints" resolve="ModelConstraints" />
<node concept="3bvxqY" id="7ksQUDZstKY" role="37wK5m" />
<node concept="prKvN" id="7ksQUDZstKZ" role="37wK5m">
<ref role="prhl4" to="5j4j:7E86$tK_OxQ" resolve="LogicalVariableReference" />
<ref role="prhl7" to="5j4j:7E86$tK_PaH" />
</node>
<node concept="3cmrfG" id="7ksQUDZstL0" role="37wK5m">
<property role="3cmrfH" value="-1" />
</node>
<node concept="3TUQnm" id="7ksQUDZstL1" role="37wK5m">
<ref role="3TV0OU" to="5j4j:7E86$tK_OxQ" resolve="LogicalVariableReference" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7ksQUDZs9GV" role="3cqZAp">
<node concept="10QFUN" id="7ksQUDZsbed" role="3clFbG">
<node concept="A3Dl8" id="7ksQUDZsbne" role="10QFUM">
<node concept="3Tqbb2" id="7ksQUDZsbuk" role="A3Ik2" />
</node>
<node concept="2OqwBi" id="7ksQUDZsbei" role="10QFUP">
<node concept="2OqwBi" id="7ksQUDZsE0W" role="2Oq$k0">
<node concept="37vLTw" id="7ksQUDZsE0X" role="2Oq$k0">
<ref role="3cqZAo" node="7ksQUDZstKW" resolve="srd" />
</node>
<node concept="liA8E" id="7ksQUDZsE0Y" role="2OqNvi">
<ref role="37wK5l" to="ymbg:~ReferenceDescriptor.getScope():jetbrains.mps.scope.Scope" resolve="getScope" />
</node>
</node>
<node concept="liA8E" id="7ksQUDZsbek" role="2OqNvi">
<ref role="37wK5l" to="vyt2:~Scope.getAvailableElements(java.lang.String):java.lang.Iterable" resolve="getAvailableElements" />
<node concept="Xl_RD" id="7ksQUDZsbel" role="37wK5m">
<property role="Xl_RC" value="" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2h3Zct" id="2E5lcNmZdKL" role="uGu3D">
<property role="2h4Kg1" value="%%" />
</node>
</node>
</node>
</node>
</node>
<node concept="3UOs0u" id="2E5lcNn1a8i">
<property role="TrG5h" value="Head_replace" />
<property role="3GE5qa" value="rule.component" />
<node concept="3UNGvq" id="2E5lcNn1af0" role="3UOs0v">
<property role="2uHTBK" value="ext_1_RTransform" />
<ref role="3UNGvu" to="wq2x:6p0DfM0a3gA" resolve="Head" />
@ -347,6 +525,9 @@
<property role="TrG5h" value="ExpressionConstraint_subst_Expression" />
<node concept="3FOIzC" id="1PFbZN6vSAN" role="3FOPby">
<ref role="3FOWKa" to="wq2x:4EfgX2EvF4i" resolve="ExpressionConstraint" />
<node concept="z64au" id="7ksQUDZtc7u" role="tZc4B">
<ref role="z65TK" to="wq2x:6p0DfM0pKSO" resolve="LogicExpressionWrapper" />
</node>
<node concept="tYCnQ" id="1PFbZN6vSB$" role="tZc4B">
<ref role="uz4UX" to="wq2x:4EfgX2EvF4i" resolve="ExpressionConstraint" />
<node concept="yEb5T" id="1PFbZN6vSBA" role="uz6Si">
@ -394,5 +575,145 @@
</node>
</node>
</node>
<node concept="3FK_9_" id="7ksQUDZoqmc">
<property role="3GE5qa" value="" />
<property role="TrG5h" value="Statement_subst_LogicVarDeclarationStatement" />
<node concept="3FOIzC" id="7ksQUDZoqmd" role="3FOPby">
<ref role="3FOWKa" to="tpee:fzclF8l" resolve="Statement" />
<node concept="z64au" id="7ksQUDZp4FH" role="tZc4B">
<ref role="z65TK" to="5j4j:1mP5b6jNC0S" resolve="LogicalType" />
</node>
<node concept="tYCnQ" id="7ksQUDZoqmx" role="tZc4B">
<ref role="uz4UX" to="wq2x:2E5lcNn5kn6" resolve="ParameterDeclarationStatement" />
<node concept="ucClh" id="7ksQUDZoYjC" role="uz6Si">
<node concept="ucgPf" id="7ksQUDZoYjE" role="ucMEw">
<node concept="3clFbS" id="7ksQUDZoYjG" role="2VODD2">
<node concept="3cpWs8" id="7ksQUDZp0fI" role="3cqZAp">
<node concept="3cpWsn" id="7ksQUDZp0fJ" role="3cpWs9">
<property role="TrG5h" value="pds" />
<node concept="3Tqbb2" id="7ksQUDZp0fG" role="1tU5fm">
<ref role="ehGHo" to="wq2x:2E5lcNn5kn6" resolve="ParameterDeclarationStatement" />
</node>
<node concept="2OqwBi" id="7ksQUDZp0fK" role="33vP2m">
<node concept="1Q6Npb" id="7ksQUDZp0fL" role="2Oq$k0" />
<node concept="15TzpJ" id="7ksQUDZp0fM" role="2OqNvi">
<ref role="I8UWU" to="wq2x:2E5lcNn5kn6" resolve="ParameterDeclarationStatement" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7ksQUDZp4pt" role="3cqZAp">
<node concept="37vLTw" id="7ksQUDZp4pr" role="3clFbG">
<ref role="3cqZAo" node="7ksQUDZp0fJ" resolve="pds" />
</node>
</node>
</node>
</node>
<node concept="uGdhv" id="7ksQUDZoYt2" role="uGu3D">
<node concept="3clFbS" id="7ksQUDZoYt3" role="2VODD2">
<node concept="3clFbF" id="7ksQUDZoYzH" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZoZnv" role="3clFbG">
<node concept="3B5_sB" id="7ksQUDZoYzG" role="2Oq$k0">
<ref role="3B5MYn" to="5j4j:1mP5b6jNC0S" resolve="LogicalType" />
</node>
<node concept="3TrcHB" id="7ksQUDZoZRJ" role="2OqNvi">
<ref role="3TsBF5" to="tpce:4qF2Hm2r7ja" resolve="conceptAlias" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3buRE8" id="7ksQUDZoqLc" role="3bvWUf">
<node concept="3clFbS" id="7ksQUDZoqLd" role="2VODD2">
<node concept="3clFbF" id="7ksQUDZoqQV" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZorjo" role="3clFbG">
<node concept="2OqwBi" id="7ksQUDZoqWY" role="2Oq$k0">
<node concept="3bvxqY" id="7ksQUDZoqQU" role="2Oq$k0" />
<node concept="2Xjw5R" id="7ksQUDZor6l" role="2OqNvi">
<node concept="1xMEDy" id="7ksQUDZor6n" role="1xVPHs">
<node concept="chp4Y" id="7ksQUDZorbP" role="ri$Ld">
<ref role="cht4Q" to="wq2x:6p0DfM0a3gA" resolve="Head" />
</node>
</node>
<node concept="1xIGOp" id="7ksQUDZossh" role="1xVPHs" />
</node>
</node>
<node concept="3x8VRR" id="7ksQUDZor_9" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="3FOIzC" id="7ksQUDZoqKi" role="3FOPby">
<ref role="3FOWKa" to="tpee:fzclF8l" resolve="Statement" />
<node concept="3buRE8" id="7ksQUDZorQ9" role="3bvWUf">
<node concept="3clFbS" id="7ksQUDZorQa" role="2VODD2">
<node concept="3clFbF" id="7ksQUDZorV5" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZosOx" role="3clFbG">
<node concept="2OqwBi" id="7ksQUDZos18" role="2Oq$k0">
<node concept="3bvxqY" id="7ksQUDZorV4" role="2Oq$k0" />
<node concept="2Xjw5R" id="7ksQUDZoseC" role="2OqNvi">
<node concept="1xMEDy" id="7ksQUDZoseE" role="1xVPHs">
<node concept="chp4Y" id="7ksQUDZos$C" role="ri$Ld">
<ref role="cht4Q" to="wq2x:6p0DfM0a3TO" resolve="Body" />
</node>
</node>
<node concept="1xIGOp" id="7ksQUDZosHx" role="1xVPHs" />
</node>
</node>
<node concept="3x8VRR" id="7ksQUDZot6m" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="z64au" id="7ksQUDZp4VJ" role="tZc4B">
<ref role="z65TK" to="5j4j:1mP5b6jNC0S" resolve="LogicalType" />
</node>
<node concept="tYCnQ" id="7ksQUDZotcb" role="tZc4B">
<ref role="uz4UX" to="wq2x:2E5lcNn5Ub2" resolve="LocalDeclarationStatement" />
<node concept="ucClh" id="7ksQUDZp4VQ" role="uz6Si">
<node concept="ucgPf" id="7ksQUDZp4VR" role="ucMEw">
<node concept="3clFbS" id="7ksQUDZp4VS" role="2VODD2">
<node concept="3cpWs8" id="7ksQUDZp69Z" role="3cqZAp">
<node concept="3cpWsn" id="7ksQUDZp6a0" role="3cpWs9">
<property role="TrG5h" value="lds" />
<node concept="3Tqbb2" id="7ksQUDZp69X" role="1tU5fm">
<ref role="ehGHo" to="wq2x:2E5lcNn5Ub2" resolve="LocalDeclarationStatement" />
</node>
<node concept="2OqwBi" id="7ksQUDZp6a1" role="33vP2m">
<node concept="1Q6Npb" id="7ksQUDZp6a2" role="2Oq$k0" />
<node concept="15TzpJ" id="7ksQUDZp6a3" role="2OqNvi">
<ref role="I8UWU" to="wq2x:2E5lcNn5Ub2" resolve="LocalDeclarationStatement" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7ksQUDZp5T3" role="3cqZAp">
<node concept="37vLTw" id="7ksQUDZp6a4" role="3clFbG">
<ref role="3cqZAo" node="7ksQUDZp6a0" resolve="lds" />
</node>
</node>
</node>
</node>
<node concept="uGdhv" id="7ksQUDZp4XB" role="uGu3D">
<node concept="3clFbS" id="7ksQUDZp4XC" role="2VODD2">
<node concept="3clFbF" id="7ksQUDZp54i" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZp5iF" role="3clFbG">
<node concept="3B5_sB" id="7ksQUDZp54h" role="2Oq$k0">
<ref role="3B5MYn" to="5j4j:1mP5b6jNC0S" resolve="LogicalType" />
</node>
<node concept="3TrcHB" id="7ksQUDZp5MV" role="2OqNvi">
<ref role="3TsBF5" to="tpce:4qF2Hm2r7ja" resolve="conceptAlias" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</model>

View File

@ -3,6 +3,7 @@
<persistence version="9" />
<languages>
<use id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor" version="-1" />
<use id="f2801650-65d5-424e-bb1b-463a8781b786" name="jetbrains.mps.baseLanguage.javadoc" version="2" />
<devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
</languages>
<imports>
@ -10,8 +11,12 @@
<import index="tpen" ref="r:00000000-0000-4000-0000-011c895902c3(jetbrains.mps.baseLanguage.editor)" />
<import index="tpco" ref="r:00000000-0000-4000-0000-011c89590284(jetbrains.mps.lang.core.editor)" />
<import index="tp2u" ref="r:00000000-0000-4000-0000-011c8959032a(jetbrains.mps.baseLanguage.collections.editor)" />
<import index="qe67" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/f:java_stub#1ed103c3-3aa6-49b7-9c21-6765ee11f224#jetbrains.mps.openapi.editor.style(MPS.Editor/jetbrains.mps.openapi.editor.style@java_stub)" />
<import index="1t7x" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.awt(JDK/java.awt@java_stub)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="5j4j" ref="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" implicit="true" />
<import index="tpek" ref="r:00000000-0000-4000-0000-011c895902c0(jetbrains.mps.baseLanguage.behavior)" implicit="true" />
<import index="tpce" ref="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" implicit="true" />
</imports>
<registry>
<language id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor">
@ -120,32 +125,62 @@
<concept id="1073389882823" name="jetbrains.mps.lang.editor.structure.CellModel_RefNode" flags="sg" stub="730538219795960754" index="3F1sOY" />
<concept id="1073390211982" name="jetbrains.mps.lang.editor.structure.CellModel_RefNodeList" flags="sg" stub="2794558372793454595" index="3F2HdR" />
<concept id="1163613822479" name="jetbrains.mps.lang.editor.structure.CellMenuPart_Abstract_editedNode" flags="nn" index="3GMtW1" />
<concept id="1225898583838" name="jetbrains.mps.lang.editor.structure.ReadOnlyModelAccessor" flags="ng" index="1HfYo3">
<child id="1225898971709" name="getter" index="1Hhtcw" />
</concept>
<concept id="1225900081164" name="jetbrains.mps.lang.editor.structure.CellModel_ReadOnlyModelAccessor" flags="sg" stub="3708815482283559694" index="1HlG4h">
<child id="1225900141900" name="modelAccessor" index="1HlULh" />
</concept>
<concept id="1088612959204" name="jetbrains.mps.lang.editor.structure.CellModel_Alternation" flags="sg" stub="8104358048506729361" index="1QoScp">
<property id="1088613081987" name="vertical" index="1QpmdY" />
<child id="1145918517974" name="alternationCondition" index="3e4ffs" />
<child id="1088612958265" name="ifTrueCellModel" index="1QoS34" />
<child id="1088612973955" name="ifFalseCellModel" index="1QoVPY" />
</concept>
<concept id="1176717841777" name="jetbrains.mps.lang.editor.structure.QueryFunction_ModelAccess_Getter" flags="in" index="3TQlhw" />
<concept id="1950447826681509042" name="jetbrains.mps.lang.editor.structure.ApplyStyleClass" flags="lg" index="3Xmtl4">
<child id="1950447826683828796" name="target" index="3XvnJa" />
</concept>
<concept id="1166049232041" name="jetbrains.mps.lang.editor.structure.AbstractComponent" flags="ng" index="1XWOmA">
<reference id="1166049300910" name="conceptDeclaration" index="1XX52x" />
</concept>
<concept id="1176809959526" name="jetbrains.mps.lang.editor.structure.QueryFunction_Color" flags="in" index="3ZlJ5R" />
</language>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
<child id="1068498886297" name="rValue" index="37vLTx" />
<child id="1068498886295" name="lValue" index="37vLTJ" />
</concept>
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="ng" index="2tJIrI" />
<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="1145552977093" name="jetbrains.mps.baseLanguage.structure.GenericNewExpression" flags="nn" index="2ShNRf">
<child id="1145553007750" name="creator" index="2ShVmc" />
</concept>
<concept id="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
<child id="1137022507850" name="body" index="2VODD2" />
</concept>
<concept id="1070462154015" name="jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" flags="ig" index="Wx3nA" />
<concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
</concept>
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
<reference id="1144433057691" name="classifier" index="1PxDUh" />
</concept>
<concept id="1068390468198" name="jetbrains.mps.baseLanguage.structure.ClassConcept" flags="ig" index="312cEu" />
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
<child id="1068431790190" name="initializer" index="33vP2m" />
</concept>
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
<concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
<concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
<child id="5680397130376446158" name="type" index="1tU5fm" />
</concept>
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
<child id="1068580123156" name="expression" index="3clFbG" />
</concept>
@ -155,11 +190,43 @@
<concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
<property id="1068580123138" name="value" index="3clFbU" />
</concept>
<concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
<property id="1068580320021" name="value" index="3cmrfH" />
</concept>
<concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
<child id="1081516765348" name="expression" index="3fr31v" />
</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="1212685548494" name="jetbrains.mps.baseLanguage.structure.ClassCreator" flags="nn" index="1pGfFk" />
<concept id="1107461130800" name="jetbrains.mps.baseLanguage.structure.Classifier" flags="ng" index="3pOWGL">
<child id="5375687026011219971" name="member" index="jymVt" unordered="true" />
</concept>
<concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
<reference id="1107535924139" name="classifier" index="3uigEE" />
</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="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
<child id="1163668914799" name="condition" index="3K4Cdx" />
<child id="1163668922816" name="ifTrue" index="3K4E3e" />
<child id="1163668934364" name="ifFalse" index="3K4GZi" />
</concept>
<concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
</language>
<language id="f2801650-65d5-424e-bb1b-463a8781b786" name="jetbrains.mps.baseLanguage.javadoc">
<concept id="6832197706140896242" name="jetbrains.mps.baseLanguage.javadoc.structure.FieldDocComment" flags="ng" index="z59LJ" />
<concept id="5349172909345501395" name="jetbrains.mps.baseLanguage.javadoc.structure.BaseDocComment" flags="ng" index="P$AiS">
<child id="8465538089690331502" name="body" index="TZ5H$" />
</concept>
<concept id="8465538089690331500" name="jetbrains.mps.baseLanguage.javadoc.structure.CommentLine" flags="ng" index="TZ5HA">
<child id="8970989240999019149" name="part" index="1dT_Ay" />
</concept>
<concept id="8970989240999019143" name="jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart" flags="ng" index="1dT_AC">
<property id="8970989240999019144" name="text" index="1dT_AB" />
</concept>
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
@ -172,10 +239,14 @@
<concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
<reference id="1138056516764" name="link" index="3Tt5mk" />
</concept>
<concept id="1172424058054" name="jetbrains.mps.lang.smodel.structure.ConceptRefExpression" flags="nn" index="3TUQnm">
<reference id="1172424100906" name="conceptDeclaration" index="3TV0OU" />
</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" />
<child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
</concept>
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
@ -242,8 +313,8 @@
<property role="3GE5qa" value="rule" />
<ref role="1XX52x" to="wq2x:7eGEHDlgPU4" resolve="Rule" />
<node concept="3EZMnI" id="6p0DfM0cz1S" role="2wV5jI">
<node concept="3F0ifn" id="4laj_h9NV3d" role="3EZMnx">
<property role="3F0ifm" value="rule template" />
<node concept="PMmxH" id="7ksQUDZrjgg" role="3EZMnx">
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
<ref role="1k5W1q" to="tpen:hgVS8CF" resolve="KeyWord" />
</node>
<node concept="3F0A7n" id="6p0DfM0c$tx" role="3EZMnx">
@ -801,19 +872,14 @@
<node concept="24kQdi" id="6p0DfM0e8jv">
<ref role="1XX52x" to="wq2x:6p0DfM0a6KG" resolve="EmitConstraintStatement" />
<node concept="3EZMnI" id="6p0DfM0ecFC" role="2wV5jI">
<node concept="3F0ifn" id="6p0DfM0ecQR" role="3EZMnx">
<property role="3F0ifm" value="%" />
<ref role="1k5W1q" to="tpen:75A9veqzBnk" resolve="AnyBracket" />
<ref role="1k5W1q" node="7ksQUDZpyGq" resolve="Constraint" />
<node concept="3F0ifn" id="7ksQUDZwl17" role="3EZMnx">
<property role="3F0ifm" value="::" />
</node>
<node concept="3F1sOY" id="6p0DfM0ecK0" role="3EZMnx">
<ref role="1NtTu8" to="wq2x:6p0DfM0ajKO" />
<ref role="1k5W1q" node="6p0DfM0fyq3" resolve="EmitStatement" />
</node>
<node concept="l2Vlx" id="6p0DfM0ecFF" role="2iSdaV" />
<node concept="3F0ifn" id="6p0DfM0ed7R" role="3EZMnx">
<property role="3F0ifm" value="%" />
<ref role="1k5W1q" to="tpen:75A9veqzBnk" resolve="AnyBracket" />
</node>
</node>
</node>
<node concept="24kQdi" id="6p0DfM0eqz7">
@ -901,6 +967,91 @@
</node>
</node>
</node>
<node concept="14StLt" id="7ksQUDZqcLh" role="V601i">
<property role="TrG5h" value="ConceptName" />
<node concept="3Xmtl4" id="7ksQUDZqcWD" role="3F10Kt">
<node concept="1wgc9g" id="7ksQUDZqivn" role="3XvnJa">
<ref role="1wgcnl" to="tpen:aeM1BF$_eX" />
</node>
</node>
<node concept="Vb9p2" id="7ksQUDZqivu" role="3F10Kt" />
</node>
<node concept="14StLt" id="7ksQUDZqpsE" role="V601i">
<property role="TrG5h" value="InputName" />
<node concept="3Xmtl4" id="7ksQUDZqpsF" role="3F10Kt">
<node concept="1wgc9g" id="7ksQUDZr5wg" role="3XvnJa">
<ref role="1wgcnl" to="tpen:aeM1BF$xqy" />
</node>
</node>
<node concept="Vb9p2" id="7ksQUDZqpsH" role="3F10Kt">
<property role="Vbekb" value="ITALIC" />
</node>
</node>
<node concept="14StLt" id="7ksQUDZpyGq" role="V601i">
<property role="TrG5h" value="Constraint" />
<node concept="30gYXW" id="7ksQUDZpy9X" role="3F10Kt">
<node concept="3ZlJ5R" id="7ksQUDZpy9Z" role="VblUZ">
<node concept="3clFbS" id="7ksQUDZpya0" role="2VODD2">
<node concept="3clFbF" id="7ksQUDZpya1" role="3cqZAp">
<node concept="3K4zz7" id="7ksQUDZpya2" role="3clFbG">
<node concept="10M0yZ" id="7ksQUDZpya3" role="3K4E3e">
<ref role="1PxDUh" node="7ksQUDZpwgy" resolve="CustomColors" />
<ref role="3cqZAo" node="7ksQUDZq54u" resolve="SWAMP" />
</node>
<node concept="10M0yZ" id="7ksQUDZpya4" role="3K4GZi">
<ref role="1PxDUh" node="7ksQUDZpwgy" resolve="CustomColors" />
<ref role="3cqZAo" node="7ksQUDZq4Xq" resolve="LAKE" />
</node>
<node concept="2OqwBi" id="7ksQUDZpya5" role="3K4Cdx">
<node concept="2YIFZM" id="7ksQUDZpya6" role="2Oq$k0">
<ref role="37wK5l" to="qe67:~StyleRegistry.getInstance():jetbrains.mps.openapi.editor.style.StyleRegistry" resolve="getInstance" />
<ref role="1Pybhc" to="qe67:~StyleRegistry" resolve="StyleRegistry" />
</node>
<node concept="liA8E" id="7ksQUDZpya7" role="2OqNvi">
<ref role="37wK5l" to="qe67:~StyleRegistry.isDarkTheme():boolean" resolve="isDarkTheme" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="Veino" id="7ksQUDZpS7M" role="3F10Kt">
<node concept="3ZlJ5R" id="7ksQUDZpS7O" role="VblUZ">
<node concept="3clFbS" id="7ksQUDZpS7P" role="2VODD2">
<node concept="3clFbF" id="7ksQUDZpS7Q" role="3cqZAp">
<node concept="3K4zz7" id="7ksQUDZpS7R" role="3clFbG">
<node concept="10M0yZ" id="7ksQUDZpS7S" role="3K4E3e">
<ref role="1PxDUh" node="7ksQUDZpwgy" resolve="CustomColors" />
<ref role="3cqZAo" node="7ksQUDZq54u" resolve="SWAMP" />
</node>
<node concept="10M0yZ" id="7ksQUDZpS7T" role="3K4GZi">
<ref role="1PxDUh" node="7ksQUDZpwgy" resolve="CustomColors" />
<ref role="3cqZAo" node="7ksQUDZq4Xq" resolve="LAKE" />
</node>
<node concept="2OqwBi" id="7ksQUDZpS7U" role="3K4Cdx">
<node concept="2YIFZM" id="7ksQUDZpS7V" role="2Oq$k0">
<ref role="37wK5l" to="qe67:~StyleRegistry.getInstance():jetbrains.mps.openapi.editor.style.StyleRegistry" resolve="getInstance" />
<ref role="1Pybhc" to="qe67:~StyleRegistry" resolve="StyleRegistry" />
</node>
<node concept="liA8E" id="7ksQUDZpS7W" role="2OqNvi">
<ref role="37wK5l" to="qe67:~StyleRegistry.isDarkTheme():boolean" resolve="isDarkTheme" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="14StLt" id="7ksQUDZpd8b" role="V601i">
<property role="TrG5h" value="ConstraintKeyword" />
<node concept="3Xmtl4" id="7ksQUDZpda1" role="3F10Kt">
<node concept="1wgc9g" id="7ksQUDZpda5" role="3XvnJa">
<ref role="1wgcnl" to="tpen:aeM1BF$Ozh" />
</node>
</node>
</node>
</node>
<node concept="24kQdi" id="6p0DfM0g5pD">
<ref role="1XX52x" to="wq2x:7eGEHDlgPU1" resolve="NewTypeConstraint" />
@ -986,7 +1137,7 @@
<node concept="3EZMnI" id="6p0DfM0ibsz" role="2wV5jI">
<node concept="3F0A7n" id="6p0DfM0ibum" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<ref role="1k5W1q" to="tpen:hshT2l5" resolve="Parameter" />
<ref role="1k5W1q" node="7ksQUDZqpsE" resolve="InputName" />
</node>
<node concept="l2Vlx" id="6p0DfM0ibsA" role="2iSdaV" />
</node>
@ -1001,7 +1152,7 @@
<node concept="3F0A7n" id="6p0DfM0iCZZ" role="2wV5jI">
<property role="1Intyy" value="true" />
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<ref role="1k5W1q" to="tpen:hFD0yD_" resolve="VariableName" />
<ref role="1k5W1q" node="7ksQUDZqpsE" resolve="InputName" />
</node>
</node>
</node>
@ -1028,35 +1179,11 @@
<node concept="24kQdi" id="6p0DfM0pR3S">
<ref role="1XX52x" to="wq2x:6p0DfM0pKSO" resolve="LogicExpressionWrapper" />
<node concept="3EZMnI" id="6p0DfM0pRaY" role="2wV5jI">
<node concept="3F0ifn" id="6p0DfM0pRaZ" role="3EZMnx">
<property role="3F0ifm" value="%" />
<ref role="1k5W1q" to="tpen:75A9veqzBnk" resolve="AnyBracket" />
<node concept="3Xmtl4" id="6p0DfM0qN8b" role="3F10Kt">
<node concept="1wgc9g" id="6p0DfM0qN96" role="3XvnJa">
<ref role="1wgcnl" node="6p0DfM0qaop" resolve="DefaultBackground" />
</node>
</node>
<node concept="11LMrY" id="2E5lcNmZNrA" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F1sOY" id="6p0DfM0pRb0" role="3EZMnx">
<ref role="1k5W1q" node="6p0DfM0fyq3" resolve="EmitStatement" />
<ref role="1NtTu8" to="wq2x:6p0DfM0pQge" />
<ref role="1k5W1q" node="7ksQUDZpyGq" resolve="Constraint" />
</node>
<node concept="l2Vlx" id="6p0DfM0pRb1" role="2iSdaV" />
<node concept="3F0ifn" id="6p0DfM0pRb2" role="3EZMnx">
<property role="3F0ifm" value="%" />
<ref role="1k5W1q" to="tpen:75A9veqzBnk" resolve="AnyBracket" />
<node concept="3Xmtl4" id="6p0DfM0qNcu" role="3F10Kt">
<node concept="1wgc9g" id="6p0DfM0qNdp" role="3XvnJa">
<ref role="1wgcnl" node="6p0DfM0qaop" resolve="DefaultBackground" />
</node>
</node>
<node concept="11L4FC" id="2E5lcNmZNv7" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
</node>
</node>
<node concept="24kQdi" id="2E5lcNn0247">
@ -1065,7 +1192,7 @@
<node concept="3EZMnI" id="2E5lcNn029o" role="2wV5jI">
<node concept="3F0ifn" id="2E5lcNn02h6" role="3EZMnx">
<property role="3F0ifm" value="typeof" />
<ref role="1k5W1q" to="tpen:hgVS8CF" resolve="KeyWord" />
<ref role="1k5W1q" node="7ksQUDZpd8b" resolve="ConstraintKeyword" />
</node>
<node concept="3F0ifn" id="2E5lcNn02_C" role="3EZMnx">
<property role="3F0ifm" value="(" />
@ -1117,9 +1244,31 @@
<property role="3GE5qa" value="constraint.variable" />
<ref role="1XX52x" to="wq2x:2E5lcNn5kn6" resolve="ParameterDeclarationStatement" />
<node concept="3EZMnI" id="2E5lcNn5kz9" role="2wV5jI">
<node concept="PMmxH" id="2E5lcNn5k$W" role="3EZMnx">
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
<ref role="1k5W1q" to="tpen:hgVS8CF" resolve="KeyWord" />
<ref role="1k5W1q" node="7ksQUDZpyGq" resolve="Constraint" />
<node concept="3F0ifn" id="7ksQUDZwl6Z" role="3EZMnx">
<property role="3F0ifm" value="::" />
</node>
<node concept="1HlG4h" id="7ksQUDZp$_R" role="3EZMnx">
<ref role="1k5W1q" node="7ksQUDZpd8b" resolve="ConstraintKeyword" />
<node concept="1HfYo3" id="7ksQUDZp$_T" role="1HlULh">
<node concept="3TQlhw" id="7ksQUDZp$_V" role="1Hhtcw">
<node concept="3clFbS" id="7ksQUDZp$_X" role="2VODD2">
<node concept="3clFbF" id="7ksQUDZp$Qt" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZp_4T" role="3clFbG">
<node concept="3TUQnm" id="7ksQUDZp$Qs" role="2Oq$k0">
<ref role="3TV0OU" to="5j4j:1mP5b6jNC0S" resolve="LogicalType" />
</node>
<node concept="3TrcHB" id="7ksQUDZp_sp" role="2OqNvi">
<ref role="3TsBF5" to="tpce:4qF2Hm2r7ja" resolve="conceptAlias" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="Vb9p2" id="7ksQUDZp$NP" role="3F10Kt">
<property role="Vbekb" value="BOLD" />
</node>
</node>
<node concept="3F2HdR" id="2E5lcNn5kR1" role="3EZMnx">
<property role="2czwfO" value="," />
@ -1131,10 +1280,6 @@
</node>
</node>
</node>
<node concept="3F0ifn" id="2E5lcNn5wZ8" role="3EZMnx">
<property role="3F0ifm" value=";" />
<ref role="1k5W1q" to="tpen:hFDgi_W" resolve="Semicolon" />
</node>
<node concept="l2Vlx" id="2E5lcNn5kzc" role="2iSdaV" />
</node>
</node>
@ -1142,9 +1287,31 @@
<property role="3GE5qa" value="constraint.variable" />
<ref role="1XX52x" to="wq2x:2E5lcNn5Ub2" resolve="LocalDeclarationStatement" />
<node concept="3EZMnI" id="2E5lcNn5Use" role="2wV5jI">
<node concept="PMmxH" id="2E5lcNn5UvK" role="3EZMnx">
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
<ref role="1k5W1q" to="tpen:hgVS8CF" resolve="KeyWord" />
<ref role="1k5W1q" node="7ksQUDZpyGq" resolve="Constraint" />
<node concept="3F0ifn" id="7ksQUDZwld6" role="3EZMnx">
<property role="3F0ifm" value="::" />
</node>
<node concept="1HlG4h" id="7ksQUDZp_Ps" role="3EZMnx">
<ref role="1k5W1q" node="7ksQUDZpd8b" resolve="ConstraintKeyword" />
<node concept="1HfYo3" id="7ksQUDZp_Pt" role="1HlULh">
<node concept="3TQlhw" id="7ksQUDZp_Pu" role="1Hhtcw">
<node concept="3clFbS" id="7ksQUDZp_Pv" role="2VODD2">
<node concept="3clFbF" id="7ksQUDZp_Pw" role="3cqZAp">
<node concept="2OqwBi" id="7ksQUDZp_Px" role="3clFbG">
<node concept="3TUQnm" id="7ksQUDZp_Py" role="2Oq$k0">
<ref role="3TV0OU" to="5j4j:1mP5b6jNC0S" resolve="LogicalType" />
</node>
<node concept="3TrcHB" id="7ksQUDZp_Pz" role="2OqNvi">
<ref role="3TsBF5" to="tpce:4qF2Hm2r7ja" resolve="conceptAlias" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="Vb9p2" id="7ksQUDZp_P$" role="3F10Kt">
<property role="Vbekb" value="BOLD" />
</node>
</node>
<node concept="3F2HdR" id="2E5lcNn5Uyr" role="3EZMnx">
<property role="2czwfO" value="," />
@ -1156,14 +1323,6 @@
</node>
</node>
</node>
<node concept="3F0ifn" id="2E5lcNn5UDm" role="3EZMnx" />
<node concept="3F0ifn" id="2E5lcNn5UEo" role="3EZMnx">
<property role="3F0ifm" value=";" />
<ref role="1k5W1q" to="tpen:hFDgi_W" resolve="Semicolon" />
<node concept="11L4FC" id="3elRT3b_3R4" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="l2Vlx" id="2E5lcNn5Ush" role="2iSdaV" />
</node>
</node>
@ -1351,6 +1510,7 @@
<node concept="3F0A7n" id="5NuEpF1ijhg" role="2wV5jI">
<property role="1Intyy" value="true" />
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<ref role="1k5W1q" node="7ksQUDZqcLh" resolve="ConceptName" />
</node>
</node>
</node>
@ -1914,5 +2074,68 @@
<node concept="l2Vlx" id="6infEALDvB3" role="2iSdaV" />
</node>
</node>
<node concept="312cEu" id="7ksQUDZpwgy">
<property role="TrG5h" value="CustomColors" />
<node concept="2tJIrI" id="7ksQUDZtH$w" role="jymVt" />
<node concept="Wx3nA" id="7ksQUDZq4Xq" role="jymVt">
<property role="TrG5h" value="LAKE" />
<node concept="3Tm1VV" id="7ksQUDZq4Xr" role="1B3o_S" />
<node concept="3uibUv" id="7ksQUDZq4Xs" role="1tU5fm">
<ref role="3uigEE" to="1t7x:~Color" resolve="Color" />
</node>
<node concept="2ShNRf" id="7ksQUDZq4Xt" role="33vP2m">
<node concept="1pGfFk" id="7ksQUDZq4Xu" role="2ShVmc">
<ref role="37wK5l" to="1t7x:~Color.&lt;init&gt;(int,int,int)" resolve="Color" />
<node concept="3cmrfG" id="7ksQUDZq4Xv" role="37wK5m">
<property role="3cmrfH" value="237" />
</node>
<node concept="3cmrfG" id="7ksQUDZq4Xw" role="37wK5m">
<property role="3cmrfH" value="252" />
</node>
<node concept="3cmrfG" id="7ksQUDZq4Xx" role="37wK5m">
<property role="3cmrfH" value="237" />
</node>
</node>
</node>
<node concept="z59LJ" id="7ksQUDZq4Xy" role="lGtFl">
<node concept="TZ5HA" id="7ksQUDZq4Xz" role="TZ5H$">
<node concept="1dT_AC" id="7ksQUDZq4X$" role="1dT_Ay">
<property role="1dT_AB" value="BG for Injected fragment, default scheme" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7ksQUDZq5ef" role="jymVt" />
<node concept="Wx3nA" id="7ksQUDZq54u" role="jymVt">
<property role="TrG5h" value="SWAMP" />
<node concept="3Tm1VV" id="7ksQUDZq54v" role="1B3o_S" />
<node concept="3uibUv" id="7ksQUDZq54w" role="1tU5fm">
<ref role="3uigEE" to="1t7x:~Color" resolve="Color" />
</node>
<node concept="2ShNRf" id="7ksQUDZq54x" role="33vP2m">
<node concept="1pGfFk" id="7ksQUDZq54y" role="2ShVmc">
<ref role="37wK5l" to="1t7x:~Color.&lt;init&gt;(int,int,int)" resolve="Color" />
<node concept="3cmrfG" id="7ksQUDZq54z" role="37wK5m">
<property role="3cmrfH" value="54" />
</node>
<node concept="3cmrfG" id="7ksQUDZq54$" role="37wK5m">
<property role="3cmrfH" value="65" />
</node>
<node concept="3cmrfG" id="7ksQUDZq54_" role="37wK5m">
<property role="3cmrfH" value="53" />
</node>
</node>
</node>
<node concept="z59LJ" id="7ksQUDZq54A" role="lGtFl">
<node concept="TZ5HA" id="7ksQUDZq54B" role="TZ5H$">
<node concept="1dT_AC" id="7ksQUDZq54C" role="1dT_Ay">
<property role="1dT_AB" value="BG for Injected fragment, dark scheme" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7ksQUDZpwgT" role="jymVt" />
<node concept="3Tm1VV" id="7ksQUDZpwgz" role="1B3o_S" />
</node>
</model>

View File

@ -297,12 +297,18 @@
<property role="TrG5h" value="ParameterDeclarationStatement" />
<property role="34LRSv" value="parameter" />
<ref role="1TJDcQ" node="2E5lcNn8iYG" resolve="LogicVariableDeclarationStatement" />
<node concept="PrWs8" id="7ksQUDZoqiE" role="PzmwI">
<ref role="PrY4T" to="tpck:1_TrU5E6oyb" resolve="IDontSubstituteByDefault" />
</node>
</node>
<node concept="1TIwiD" id="2E5lcNn5Ub2">
<property role="3GE5qa" value="constraint.variable" />
<property role="TrG5h" value="LocalDeclarationStatement" />
<property role="34LRSv" value="local" />
<ref role="1TJDcQ" node="2E5lcNn8iYG" resolve="LogicVariableDeclarationStatement" />
<node concept="PrWs8" id="7ksQUDZoqiC" role="PzmwI">
<ref role="PrY4T" to="tpck:1_TrU5E6oyb" resolve="IDontSubstituteByDefault" />
</node>
</node>
<node concept="1TIwiD" id="2E5lcNn8iYG">
<property role="3GE5qa" value="constraint.variable" />