Better integration of JCHR rules into Java: handler type and constraint operations

This commit is contained in:
Fedor Isakov 2014-08-05 17:00:45 +02:00
parent 95653e38a8
commit 98a71dc8b9
16 changed files with 1955 additions and 139 deletions

View File

@ -5,11 +5,557 @@
<language namespace="d7706f63-9be2-479c-a3da-ae92af1e64d5(jetbrains.mps.lang.generator.generationContext)" />
<language namespace="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" />
<language namespace="894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)" />
<language namespace="df345b11-b8c7-4213-ac66-48d2a9b75d88(jetbrains.mps.baseLanguageInternal)" />
<language namespace="7a5dda62-9140-4668-ab76-d5ed1746f2b2(jetbrains.mps.lang.typesystem)" />
<devkit namespace="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
<import index="msyo" modelUID="f:java_stub#6ed54515-acc8-4d1e-a16c-9fd6cfe951ea#jetbrains.mps.util(MPS.Core/jetbrains.mps.util@java_stub)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="e2lb" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang(JDK/java.lang@java_stub)" version="-1" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" />
<import index="w2rx" modelUID="f:java_stub#b984ee52-f34d-4b6d-8812-866c1d3eae31#runtime(jetbrains.mps.jchr.runtime/runtime@java_stub)" version="-1" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="tpf8" modelUID="r:00000000-0000-4000-0000-011c895902e8(jetbrains.mps.lang.generator.structure)" version="2" implicit="yes" />
<import index="tp68" modelUID="r:00000000-0000-4000-0000-011c895903ac(jetbrains.mps.baseLanguageInternal.structure)" version="2" implicit="yes" />
<import index="tp25" modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" implicit="yes" />
<import index="tpek" modelUID="r:00000000-0000-4000-0000-011c895902c0(jetbrains.mps.baseLanguage.behavior)" version="-1" implicit="yes" />
<import index="tpf3" modelUID="r:00000000-0000-4000-0000-011c895902f3(jetbrains.mps.lang.generator.generationContext.structure)" version="0" implicit="yes" />
<import index="tpd4" modelUID="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" version="7" implicit="yes" />
<import index="tp2q" modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="7" implicit="yes" />
<import index="tp3t" modelUID="r:00000000-0000-4000-0000-011c89590345(jetbrains.mps.lang.pattern.structure)" version="0" implicit="yes" />
<root type="tpf8.MappingConfiguration" typeId="tpf8.1095416546421" id="456733934405380507" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="main" />
<node role="reductionMappingRule" roleId="tpf8.1167328349397" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="1503029985082887" nodeInfo="ng">
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="vgt0.1503029981964506" resolveInfo="HandlerType" />
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="1503029985087134" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tp68.InternalClassifierType" typeId="tp68.1174914042989" id="3562712610788163131" nodeInfo="in">
<property name="fqClassName" nameId="tp68.1174914081067" value="handlerFqName" />
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="e2lb.~Object" resolveInfo="Object" />
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.PropertyMacro" typeId="tpf8.1087833241328" id="1503029985088573" nodeInfo="nn">
<property name="propertyName" nameId="tpck.1757699476691236117" value="fqClassName" />
<node role="propertyValueFunction" roleId="tpf8.1167756362303" type="tpf8.PropertyMacro_GetPropertyValue" typeId="tpf8.1167756080639" id="1503029985088574" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985088575" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="1503029985863464" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="1503029985863465" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="handlerModel" />
<node role="type" roleId="tpee.5680397130376446158" type="tp25.SModelType" typeId="tp25.1143226024141" id="1503029985863466" nodeInfo="in" />
<node role="initializer" roleId="tpee.1068431790190" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985863467" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985863468" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="1503029985863469" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_GetOriginalCopiedInputByOutput" typeId="tpf3.1229477454423" id="1503029985863470" nodeInfo="nn">
<node role="outputNode" roleId="tpf3.1229477520175" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985863471" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985863472" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985894682" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029982163244" />
</node>
</node>
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetModelOperation" typeId="tp25.1143234257716" id="1503029985863474" nodeInfo="nn" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985863475" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="1503029985863476" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="msyo.~JavaNameUtil%dfqClassName(org%djetbrains%dmps%dopenapi%dmodel%dSModel,java%dlang%dString)%cjava%dlang%dString" resolveInfo="fqClassName" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="msyo.~JavaNameUtil" resolveInfo="JavaNameUtil" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029985863477" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029985863465" resolveInfo="handlerModel" />
</node>
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985863478" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985863479" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985863480" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985897493" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029982163244" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029985863482" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="vgt0.1503029985094820" resolveInfo="classname" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="reductionMappingRule" roleId="tpf8.1167328349397" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="1503029985197364" nodeInfo="ng">
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="vgt0.1503029982035201" resolveInfo="HandlerCreator" />
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="1503029985197758" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tp68.InternalNewExpression" typeId="tp68.1173996401517" id="3562712610788163132" nodeInfo="nn">
<property name="fqClassName" nameId="tp68.1173996588177" value="handlerFqName" />
<node role="actualArgument" roleId="tp68.319021450862590135" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029985199392" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcListMacro" typeId="tpf8.1114729360583" id="1503029985199626" nodeInfo="nn">
<node role="sourceNodesQuery" roleId="tpf8.1168278589236" type="tpf8.SourceSubstituteMacro_SourceNodesQuery" typeId="tpf8.1167951910403" id="1503029985199629" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985199630" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985199636" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985199631" nodeInfo="nn">
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029985199634" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.1503029984919269" />
</node>
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985199635" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="type" roleId="tp68.1179332974947" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="1503029985200921" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="e2lb.~Object" resolveInfo="Object" />
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.PropertyMacro" typeId="tpf8.1087833241328" id="1503029985205027" nodeInfo="nn">
<property name="propertyName" nameId="tpck.1757699476691236117" value="fqClassName" />
<node role="propertyValueFunction" roleId="tpf8.1167756362303" type="tpf8.PropertyMacro_GetPropertyValue" typeId="tpf8.1167756080639" id="1503029985205028" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985205029" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="1503029985856329" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="1503029985856330" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="handlerModel" />
<node role="type" roleId="tpee.5680397130376446158" type="tp25.SModelType" typeId="tp25.1143226024141" id="1503029985856328" nodeInfo="in" />
<node role="initializer" roleId="tpee.1068431790190" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985856331" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985856332" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="1503029985856333" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_GetOriginalCopiedInputByOutput" typeId="tpf3.1229477454423" id="1503029985856334" nodeInfo="nn">
<node role="outputNode" roleId="tpf3.1229477520175" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985856335" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985856336" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985856337" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029982159404" />
</node>
</node>
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetModelOperation" typeId="tp25.1143234257716" id="1503029985856338" nodeInfo="nn" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985206939" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="1503029985831693" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="msyo.~JavaNameUtil%dfqClassName(org%djetbrains%dmps%dopenapi%dmodel%dSModel,java%dlang%dString)%cjava%dlang%dString" resolveInfo="fqClassName" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="msyo.~JavaNameUtil" resolveInfo="JavaNameUtil" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029985860141" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029985856330" resolveInfo="handlerModel" />
</node>
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985831697" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985831698" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985831699" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985831700" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029982159404" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029985831701" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="vgt0.1503029985094820" resolveInfo="classname" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="reductionMappingRule" roleId="tpf8.1167328349397" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="1503029985730788" nodeInfo="ng">
<property name="applyToConceptInheritors" nameId="tpf8.1167272244852" value="true" />
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="vgt0.1503029981970139" resolveInfo="ParameterizedConstraintOperation" />
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="1503029985733605" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tp68.InternalPartialInstanceMethodCall" typeId="tp68.1174294166120" id="1503029985733606" nodeInfo="nn">
<property name="methodName" nameId="tp68.1174294288199" value="operation" />
<node role="actualArgument" roleId="tp68.1174318197094" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029986629449" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.LoopMacro" typeId="tpf8.1118786554307" id="1503029986631272" nodeInfo="nn">
<node role="sourceNodesQuery" roleId="tpf8.1167952069335" type="tpf8.SourceSubstituteMacro_SourceNodesQuery" typeId="tpf8.1167951910403" id="1503029986631274" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986631276" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986632970" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986633332" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029986632969" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029986634470" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.1503029982813032" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.TemplateSwitchMacro" typeId="tpf8.982871510068000147" id="1503029986632366" nodeInfo="ng">
<link role="template" roleId="tpf8.1722980698497626483" targetNodeId="1503029986424964" resolveInfo="Expression_wrapInLogical" />
<node role="actualArgument" roleId="tpf8.1722980698497626405" type="tpf8.TemplateArgumentQueryExpression" typeId="tpf8.4035562641222585520" id="1503029986637523" nodeInfo="nn">
<node role="query" roleId="tpf8.4035562641222618754" type="tpf8.TemplateArgumentQuery" typeId="tpf8.4035562641222622437" id="1503029986637525" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986637527" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986638321" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986673575" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.SNodeTypeCastExpression" typeId="tp25.1140137987495" id="1503029986669046" nodeInfo="nn">
<link role="concept" roleId="tp25.1140138128738" targetNodeId="vgt0.1503029981970139" resolveInfo="ParameterizedConstraintOperation" />
<node role="leftExpression" roleId="tp25.1140138123956" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986659519" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029986638320" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetParentOperation" typeId="tp25.1139613262185" id="1503029986661885" nodeInfo="nn" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029986675547" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029983918490" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="returnType" roleId="tp68.1174313653259" type="tpee.VoidType" typeId="tpee.1068581517677" id="1503029985733618" nodeInfo="in" />
<node role="instance" roleId="tp68.1174317636233" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029985733619" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="1503029985733620" nodeInfo="nn">
<node role="sourceNodeQuery" roleId="tpf8.1168024447342" type="tpf8.SourceSubstituteMacro_SourceNodeQuery" typeId="tpf8.1168024337012" id="1503029985733621" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985733622" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985733623" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985733624" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.SNodeTypeCastExpression" typeId="tp25.1140137987495" id="1503029985737815" nodeInfo="nn">
<link role="concept" roleId="tp25.1140138128738" targetNodeId="tpee.1197027756228" resolveInfo="DotExpression" />
<node role="leftExpression" roleId="tp25.1140138123956" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985735792" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985733625" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetParentOperation" typeId="tp25.1139613262185" id="1503029985736719" nodeInfo="nn" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985733626" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="tpee.1197027771414" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.PropertyMacro" typeId="tpf8.1087833241328" id="1503029985733627" nodeInfo="nn">
<property name="propertyName" nameId="tpck.1757699476691236117" value="methodName" />
<node role="propertyValueFunction" roleId="tpf8.1167756362303" type="tpf8.PropertyMacro_GetPropertyValue" typeId="tpf8.1167756080639" id="1503029985733628" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985733629" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985733630" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985733631" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985739291" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029986295943" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="vgt0.1503029986212460" resolveInfo="methodname" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="reductionMappingRule" roleId="tpf8.1167328349397" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="1503029985746999" nodeInfo="ng">
<property name="applyToConceptInheritors" nameId="tpf8.1167272244852" value="true" />
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="vgt0.1503029983897936" resolveInfo="ConstraintOperation" />
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="1503029985749228" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tp68.InternalPartialInstanceMethodCall" typeId="tp68.1174294166120" id="1503029985749229" nodeInfo="nn">
<property name="methodName" nameId="tp68.1174294288199" value="operation" />
<node role="returnType" roleId="tp68.1174313653259" type="tpee.VoidType" typeId="tpee.1068581517677" id="1503029985749230" nodeInfo="in" />
<node role="instance" roleId="tp68.1174317636233" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029985749231" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="1503029985749232" nodeInfo="nn">
<node role="sourceNodeQuery" roleId="tpf8.1168024447342" type="tpf8.SourceSubstituteMacro_SourceNodeQuery" typeId="tpf8.1168024337012" id="1503029985749233" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985749234" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985749235" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985749236" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.SNodeTypeCastExpression" typeId="tp25.1140137987495" id="1503029985752182" nodeInfo="nn">
<link role="concept" roleId="tp25.1140138128738" targetNodeId="tpee.1197027756228" resolveInfo="DotExpression" />
<node role="leftExpression" roleId="tp25.1140138123956" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985750507" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985749237" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetParentOperation" typeId="tp25.1139613262185" id="1503029985751331" nodeInfo="nn" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985749238" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="tpee.1197027771414" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.PropertyMacro" typeId="tpf8.1087833241328" id="1503029985749239" nodeInfo="nn">
<property name="propertyName" nameId="tpck.1757699476691236117" value="methodName" />
<node role="propertyValueFunction" roleId="tpf8.1167756362303" type="tpf8.PropertyMacro_GetPropertyValue" typeId="tpf8.1167756080639" id="1503029985749240" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985749241" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985749242" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985749243" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985757745" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029986298378" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="vgt0.1503029986212460" resolveInfo="methodname" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="reductionMappingRule" roleId="tpf8.1167328349397" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="1503029985688040" nodeInfo="ng">
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="tpee.1145552977093" resolveInfo="GenericNewExpression" />
<node role="conditionFunction" roleId="tpf8.1167169362365" type="tpf8.BaseMappingRule_Condition" typeId="tpf8.1167168920554" id="1503029985689462" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985689463" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985690167" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985693175" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985690458" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985690166" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985691698" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="tpee.1145553007750" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_IsInstanceOfOperation" typeId="tp25.1139621453865" id="1503029985694038" nodeInfo="nn">
<node role="conceptArgument" roleId="tp25.1177027386292" type="tp25.RefConcept_Reference" typeId="tp25.1177026924588" id="1503029985694976" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1177026940964" targetNodeId="vgt0.1503029982035201" resolveInfo="HandlerCreator" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="1503029985714945" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029985722607" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="1503029985722786" nodeInfo="nn">
<node role="sourceNodeQuery" roleId="tpf8.1168024447342" type="tpf8.SourceSubstituteMacro_SourceNodeQuery" typeId="tpf8.1168024337012" id="1503029985722849" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985722850" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985722932" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985723066" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985722931" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985723752" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="tpee.1145553007750" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="reductionMappingRule" roleId="tpf8.1167328349397" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="1503029985268949" nodeInfo="ng">
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="tpee.1197027756228" resolveInfo="DotExpression" />
<node role="conditionFunction" roleId="tpf8.1167169362365" type="tpf8.BaseMappingRule_Condition" typeId="tpf8.1167168920554" id="1503029985271384" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985271385" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985272305" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985275344" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985272623" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985272304" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_ConceptMethodCall" typeId="tp25.1179409122411" id="1503029985274845" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="tpek.8871623299328377715" resolveInfo="getOperandType" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_IsInstanceOfOperation" typeId="tp25.1139621453865" id="1503029985276089" nodeInfo="nn">
<node role="conceptArgument" roleId="tp25.1177027386292" type="tp25.RefConcept_Reference" typeId="tp25.1177026924588" id="1503029985276967" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1177026940964" targetNodeId="vgt0.1503029981964506" resolveInfo="HandlerType" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="1503029985760146" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029985761136" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="1503029985761261" nodeInfo="nn">
<node role="sourceNodeQuery" roleId="tpf8.1168024447342" type="tpf8.SourceSubstituteMacro_SourceNodeQuery" typeId="tpf8.1168024337012" id="1503029985761378" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985761379" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985761461" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985761618" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029985761460" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029985762501" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="tpee.1197027833540" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</root>
<root type="tpf8.TemplateSwitch" typeId="tpf8.1112730859144" id="1503029986424964" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="Expression_wrapInLogical" />
<node role="parameter" roleId="tpf8.982871510064032342" type="tpf8.TemplateParameterDeclaration" typeId="tpf8.1805153994415891174" id="1503029986430976" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="constraint" />
<node role="type" roleId="tpf8.1805153994415893199" type="tp25.SNodeType" typeId="tp25.1138055754698" id="1503029986431644" nodeInfo="in">
<link role="concept" roleId="tp25.1138405853777" targetNodeId="vgt0.456733934405496212" resolveInfo="ConstraintDeclaration" />
</node>
</node>
<node role="reductionMappingRule" roleId="tpf8.1167340453568" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="1503029986543945" nodeInfo="ng">
<property name="applyToConceptInheritors" nameId="tpf8.1167272244852" value="true" />
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="1503029986543946" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tp68.InternalNewExpression" typeId="tp68.1173996401517" id="1503029986546188" nodeInfo="nn">
<property name="fqClassName" nameId="tp68.1173996588177" value="fqName" />
<node role="parameter" roleId="tp68.1240934738108" type="tpee.WildCardType" typeId="tpee.1171903607971" id="1503029986745353" nodeInfo="in">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcListMacro" typeId="tpf8.1114729360583" id="1503029986746859" nodeInfo="nn">
<node role="sourceNodesQuery" roleId="tpf8.1168278589236" type="tpf8.SourceSubstituteMacro_SourceNodesQuery" typeId="tpf8.1167951910403" id="1503029986746861" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986746863" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986748002" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986750941" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986748823" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="1503029986748001" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_VarRef" typeId="tpf3.2721957369897614808" id="1503029986750037" nodeInfo="nn">
<link role="varmacro" roleId="tpf3.2721957369897614810" targetNodeId="1503029986546587" resolveInfo="argType" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029986753811" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="tpee.1109201940907" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="actualArgument" roleId="tp68.319021450862590135" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029986712930" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="1503029986714394" nodeInfo="nn" />
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.VarMacro" typeId="tpf8.5015072279636464462" id="1503029986546587" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="argType" />
<node role="value" roleId="tpf8.5015072279636624596" type="tpf8.VarMacro_ValueQuery" typeId="tpf8.5015072279636592410" id="1503029986546589" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986546591" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="1503029986547142" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="1503029986547143" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="type" />
<node role="type" roleId="tpee.5680397130376446158" type="tp25.SNodeType" typeId="tp25.1138055754698" id="1503029986547144" nodeInfo="in">
<link role="concept" roleId="tp25.1138405853777" targetNodeId="tpee.1068431790189" resolveInfo="Type" />
</node>
<node role="initializer" roleId="tpee.1068431790190" type="tp2q.ListElementAccessExpression" typeId="tp2q.1225711141656" id="1503029986547145" nodeInfo="nn">
<node role="index" roleId="tp2q.1225711191269" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986547146" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029986547147" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetIndexInParentOperation" typeId="tp25.1179168000618" id="1503029986547148" nodeInfo="nn" />
</node>
<node role="list" roleId="tp2q.1225711182005" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986547149" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986547150" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="1503029986547151" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_ParameterRef" typeId="tpf3.5190093307972723402" id="1503029986547152" nodeInfo="nn">
<link role="parameter" roleId="tpf3.5190093307972736266" targetNodeId="1503029986430976" resolveInfo="constraint" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029986547153" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.456733934405496239" />
</node>
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986547154" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpd4.CoerceExpression" typeId="tpd4.1178870617262" id="1503029986547155" nodeInfo="nn">
<node role="nodeToCoerce" roleId="tpd4.1178870894645" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986547156" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986547143" resolveInfo="type" />
</node>
<node role="pattern" roleId="tpd4.1178870894644" type="tpd4.ConceptReference" typeId="tpd4.1174642788531" id="1503029986707377" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="classifierType" />
<link role="concept" roleId="tpd4.1174642800329" targetNodeId="tpee.1107535904670" resolveInfo="ClassifierType" />
</node>
</node>
</node>
</node>
</node>
<node role="type" roleId="tpf8.5015072279636624635" type="tp25.SNodeType" typeId="tp25.1138055754698" id="1503029986547948" nodeInfo="in">
<link role="concept" roleId="tp25.1138405853777" targetNodeId="tpee.1107535904670" resolveInfo="ClassifierType" />
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.PropertyMacro" typeId="tpf8.1087833241328" id="1503029986549461" nodeInfo="nn">
<property name="propertyName" nameId="tpck.1757699476691236117" value="fqClassName" />
<node role="propertyValueFunction" roleId="tpf8.1167756362303" type="tpf8.PropertyMacro_GetPropertyValue" typeId="tpf8.1167756080639" id="1503029986549462" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986549463" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="1503029986572523" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="1503029986572524" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="clsModel" />
<node role="type" roleId="tpee.5680397130376446158" type="tp25.SNodeType" typeId="tp25.1138055754698" id="1503029986572516" nodeInfo="in" />
<node role="initializer" roleId="tpee.1068431790190" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986572525" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="1503029986572526" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_GetOriginalCopiedInputByOutput" typeId="tpf3.1229477454423" id="1503029986572527" nodeInfo="nn">
<node role="outputNode" roleId="tpf3.1229477520175" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986572528" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986572529" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="1503029986572530" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_VarRef" typeId="tpf3.2721957369897614808" id="1503029986572531" nodeInfo="nn">
<link role="varmacro" roleId="tpf3.2721957369897614810" targetNodeId="1503029986546587" resolveInfo="argType" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029986572532" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="tpee.1107535924139" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986558008" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="1503029986559088" nodeInfo="nn">
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="msyo.~JavaNameUtil" resolveInfo="JavaNameUtil" />
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="msyo.~JavaNameUtil%dfqClassName(org%djetbrains%dmps%dopenapi%dmodel%dSNode,java%dlang%dString)%cjava%dlang%dString" resolveInfo="fqClassName" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986578238" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986572524" resolveInfo="clsModel" />
</node>
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986600330" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986583753" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986581076" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="1503029986580453" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_VarRef" typeId="tpf3.2721957369897614808" id="1503029986582168" nodeInfo="nn">
<link role="varmacro" roleId="tpf3.2721957369897614810" targetNodeId="1503029986546587" resolveInfo="argType" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029986594642" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="tpee.1107535924139" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029986602691" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="conditionFunction" roleId="tpf8.1167169362365" type="tpf8.BaseMappingRule_Condition" typeId="tpf8.1167168920554" id="1503029986543983" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986543984" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="1503029986543985" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="1503029986543986" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="type" />
<node role="type" roleId="tpee.5680397130376446158" type="tp25.SNodeType" typeId="tp25.1138055754698" id="1503029986543987" nodeInfo="in">
<link role="concept" roleId="tp25.1138405853777" targetNodeId="tpee.1068431790189" resolveInfo="Type" />
</node>
<node role="initializer" roleId="tpee.1068431790190" type="tp2q.ListElementAccessExpression" typeId="tp2q.1225711141656" id="1503029986543988" nodeInfo="nn">
<node role="index" roleId="tp2q.1225711191269" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986543989" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1503029986543990" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetIndexInParentOperation" typeId="tp25.1179168000618" id="1503029986543991" nodeInfo="nn" />
</node>
<node role="list" roleId="tp2q.1225711182005" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986543992" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986543993" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="1503029986543994" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_ParameterRef" typeId="tpf3.5190093307972723402" id="1503029986543995" nodeInfo="nn">
<link role="parameter" roleId="tpf3.5190093307972736266" targetNodeId="1503029986430976" resolveInfo="constraint" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029986543996" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.456733934405496239" />
</node>
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986543997" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986543998" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.CoerceExpression" typeId="tpd4.1178870617262" id="1503029986543999" nodeInfo="nn">
<node role="nodeToCoerce" roleId="tpd4.1178870894645" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986544000" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986543986" resolveInfo="type" />
</node>
<node role="pattern" roleId="tpd4.1178870894644" type="tpd4.PatternCondition" typeId="tpd4.1174642900584" id="1503029986544001" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="logical" />
<node role="pattern" roleId="tpd4.1174642936809" type="tp3t.PatternExpression" typeId="tp3t.1136720037777" id="1503029986544002" nodeInfo="in">
<node role="patternNode" roleId="tp3t.1136720037778" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="1503029986544003" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="w2rx.~Logical" resolveInfo="Logical" />
</node>
</node>
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_IsNotNullOperation" typeId="tp25.1172008320231" id="1503029986544004" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</root>
</model>

View File

@ -18,9 +18,11 @@
</models>
<external-templates />
<usedLanguages>
<usedLanguage>df345b11-b8c7-4213-ac66-48d2a9b75d88(jetbrains.mps.baseLanguageInternal)</usedLanguage>
<usedLanguage>894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)</usedLanguage>
<usedLanguage>b401a680-8325-4110-8fd3-84331ff25bef(jetbrains.mps.lang.generator)</usedLanguage>
<usedLanguage>d7706f63-9be2-479c-a3da-ae92af1e64d5(jetbrains.mps.lang.generator.generationContext)</usedLanguage>
<usedLanguage>7a5dda62-9140-4668-ab76-d5ed1746f2b2(jetbrains.mps.lang.typesystem)</usedLanguage>
</usedLanguages>
<usedDevKits>
<usedDevKit>fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)</usedDevKit>
@ -49,7 +51,9 @@
<usedLanguage>f3347d8a-0e79-4f35-8ac9-1574f25c986f(jetbrains.mps.execution.commands)</usedLanguage>
<usedLanguage>63650c59-16c8-498a-99c8-005c7ee9515d(jetbrains.mps.lang.access)</usedLanguage>
<usedLanguage>0272d3b4-4cc8-481e-9e2f-07793fbfcb41(jetbrains.mps.lang.editor.table)</usedLanguage>
<usedLanguage>d4615e3b-d671-4ba9-af01-2b78369b0ba7(jetbrains.mps.lang.pattern)</usedLanguage>
<usedLanguage>28f9e497-3b42-4291-aeba-0a1039153ab1(jetbrains.mps.lang.plugin)</usedLanguage>
<usedLanguage>13744753-c81f-424a-9c1b-cf8943bf4e86(jetbrains.mps.lang.sharedConcepts)</usedLanguage>
<usedLanguage>9ded098b-ad6a-4657-bfd9-48636cfe8bc3(jetbrains.mps.lang.traceable)</usedLanguage>
<usedLanguage>696c1165-4a59-463b-bc5d-902caab85dd0(jetbrains.mps.make.facet)</usedLanguage>
<usedLanguage>95f8a3e6-f994-4ca0-a65e-763c9bae2d3b(jetbrains.mps.make.script)</usedLanguage>

View File

@ -3,14 +3,16 @@
<persistence version="8" />
<language namespace="aee9cad2-acd4-4608-aef2-0004f6a1cdbd(jetbrains.mps.lang.actions)" />
<language namespace="760a0a8c-eabb-4521-8bfd-65db761a9ba3(jetbrains.mps.baseLanguage.logging)" />
<language namespace="13744753-c81f-424a-9c1b-cf8943bf4e86(jetbrains.mps.lang.sharedConcepts)" />
<devkit namespace="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" />
<import index="1f2y" modelUID="r:c2e9552f-aeab-4773-af70-c663afdf96a5(jetbrains.mps.jchr.behavior)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="1f2y" modelUID="r:c2e9552f-aeab-4773-af70-c663afdf96a5(jetbrains.mps.jchr.behavior)" version="0" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" />
<import index="msyo" modelUID="f:java_stub#6ed54515-acc8-4d1e-a16c-9fd6cfe951ea#jetbrains.mps.util(MPS.Core/jetbrains.mps.util@java_stub)" version="-1" />
<import index="k7g3" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.util(JDK/java.util@java_stub)" version="-1" />
<import index="e2lb" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang(JDK/java.lang@java_stub)" version="-1" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" />
<import index="tpek" modelUID="r:00000000-0000-4000-0000-011c895902c0(jetbrains.mps.baseLanguage.behavior)" version="-1" />
<import index="tp25" modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" implicit="yes" />
<import index="tp2q" modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="7" implicit="yes" />
<import index="tpdg" modelUID="r:00000000-0000-4000-0000-011c895902a8(jetbrains.mps.lang.actions.structure)" version="23" implicit="yes" />
@ -18,6 +20,7 @@
<import index="tp3r" modelUID="r:00000000-0000-4000-0000-011c8959034b(jetbrains.mps.lang.quotation.structure)" version="0" implicit="yes" />
<import index="cx9y" modelUID="r:309aeee7-bee8-445c-b31d-35928d1da75f(jetbrains.mps.baseLanguage.tuples.structure)" version="2" implicit="yes" />
<import index="tpce" modelUID="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" version="0" implicit="yes" />
<import index="tpcw" modelUID="r:00000000-0000-4000-0000-011c895902bc(jetbrains.mps.lang.sharedConcepts.structure)" version="0" implicit="yes" />
<root type="tpdg.SideTransformHintSubstituteActions" typeId="tpdg.1138079416598" id="10398748702816268" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="Constraint_addArguments" />
<node role="actionsBuilder" roleId="tpdg.1138079416599" type="tpdg.SideTransformHintSubstituteActionsBuilder" typeId="tpdg.1138079221458" id="10398748702816320" nodeInfo="ng">
@ -1935,5 +1938,293 @@
</node>
</node>
</root>
<root type="tpdg.NodeSubstituteActions" typeId="tpdg.1112056943463" id="1503029982285181" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="AbstractCreator_Handler" />
<node role="actionsBuilder" roleId="tpdg.1112058057696" type="tpdg.NodeSubstituteActionsBuilder" typeId="tpdg.1112058030570" id="1503029982285722" nodeInfo="ng">
<link role="applicableConcept" roleId="tpdg.1112058088712" targetNodeId="tpee.1145552809883" resolveInfo="AbstractCreator" />
<node role="variable" roleId="tpdg.1178540170602" type="tpdg.SubstituteNodeBuilderVariableDeclaration" typeId="tpdg.1178539929008" id="1503029982356543" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="handlers" />
<node role="initializerBlock" roleId="tpdg.1179456561288" type="tpdg.QueryFunction_SubstituteVariableInitializer" typeId="tpdg.1179456248444" id="1503029982356544" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982356545" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982380224" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982380226" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpcw.ConceptFunctionParameter_model" typeId="tpcw.1161622665029" id="1503029982380227" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Model_RootsIncludingImportedOperation" typeId="tp25.1176109685393" id="1503029982380228" nodeInfo="nn">
<link role="concept" roleId="tp25.1176109685394" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
</node>
</node>
</node>
</node>
</node>
<node role="type" roleId="tpee.5680397130376446158" type="tp25.SNodeListType" typeId="tp25.1145383075378" id="1503029982358807" nodeInfo="in">
<link role="elementConcept" roleId="tp25.1145383142433" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
</node>
</node>
<node role="precondition" roleId="tpdg.1154465386371" type="tpdg.NodeSubstitutePreconditionFunction" typeId="tpdg.1154465102724" id="1503029982285886" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982285887" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982286916" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982306164" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982287310" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpcw.ConceptFunctionParameter_model" typeId="tpcw.1161622665029" id="1503029982286915" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Model_RootsIncludingImportedOperation" typeId="tp25.1176109685393" id="1503029982288611" nodeInfo="nn">
<link role="concept" roleId="tp25.1176109685394" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp2q.IsNotEmptyOperation" typeId="tp2q.1176501494711" id="1503029982353093" nodeInfo="nn" />
</node>
</node>
</node>
</node>
<node role="part" roleId="tpdg.1177324142645" type="tpdg.RemoveByConditionPart" typeId="tpdg.1177413882405" id="1503029982472236" nodeInfo="ng">
<node role="condition" roleId="tpdg.1177414109676" type="tpdg.QueryFunction_RemoveBy_Condition" typeId="tpdg.1177413954598" id="1503029982472237" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982472238" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982480591" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.EqualsExpression" typeId="tpee.1068580123152" id="1503029982482605" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpdg.ConceptFunctionParameter_childConcept" typeId="tpdg.1177768753302" id="1503029982501476" nodeInfo="nn" />
<node role="leftExpression" roleId="tpee.1081773367580" type="tp25.ConceptRefExpression" typeId="tp25.1172424058054" id="1503029982480590" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1172424100906" targetNodeId="tpee.2820489544401957797" resolveInfo="DefaultClassCreator" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="part" roleId="tpdg.1177324142645" type="tpdg.AddMenuPart" typeId="tpdg.1177323996388" id="1503029982522537" nodeInfo="ng">
<link role="concept" roleId="tpdg.1177333551023" targetNodeId="vgt0.1503029982035201" resolveInfo="HandlerCreator" />
<node role="part" roleId="tpdg.1177333559040" type="tpdg.ParameterizedSubstituteMenuPart" typeId="tpdg.1177337641126" id="1503029982523376" nodeInfo="ng">
<node role="type" roleId="tpdg.1177337679534" type="tp25.SNodeType" typeId="tp25.1138055754698" id="1503029982524544" nodeInfo="in">
<link role="concept" roleId="tp25.1138405853777" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
</node>
<node role="query" roleId="tpdg.1177338017561" type="tpdg.QueryFunction_ParameterizedSubstitute_Query" typeId="tpdg.1177337890340" id="1503029982523380" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982523382" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982526498" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpdg.SubstituteNodeBuilderVariableReference" typeId="tpdg.1178541723620" id="1503029982526497" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029982356543" resolveInfo="handlers" />
</node>
</node>
</node>
</node>
<node role="handler" roleId="tpdg.1177339421668" type="tpdg.QueryFunction_ParameterizedSubstitute_Handler" typeId="tpdg.1177339225103" id="1503029982523384" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982523386" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982569966" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tp3r.NodeBuilder" typeId="tp3r.5455284157993863837" id="1503029982569964" nodeInfo="nn">
<node role="quotedNode" roleId="tp3r.5455284157993863838" type="tp3r.NodeBuilderNode" typeId="tp3r.5455284157993863840" id="1503029982570272" nodeInfo="nn">
<link role="concept" roleId="tp3r.5455284157993910961" targetNodeId="vgt0.1503029982035201" resolveInfo="HandlerCreator" />
<node role="values" roleId="tp3r.5455284157993911099" type="tp3r.NodeBuilderInitLink" typeId="tp3r.5455284157994012186" id="1503029982570661" nodeInfo="ng">
<link role="link" roleId="tp3r.5455284157994012188" targetNodeId="vgt0.1503029982159404" />
<node role="expression" roleId="tp3r.5455284157993911094" type="tp3r.NodeBuilderExpression" typeId="tp3r.8182547171709752110" id="1503029982570944" nodeInfo="nn">
<node role="expression" roleId="tp3r.8182547171709752112" type="tpdg.ConceptFunctionParameter_parameterObject" typeId="tpdg.1177337833147" id="1503029982571179" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="matchingText" roleId="tpdg.1177339176647" type="tpdg.QueryFunction_ParameterizedSubstitute_String" typeId="tpdg.1177339114370" id="1503029982533385" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982533386" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982542997" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029982564352" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029982564357" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="&gt;" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029982551242" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029982548642" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982544903" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.ConceptRefExpression" typeId="tp25.1172424058054" id="1503029982542996" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1172424100906" targetNodeId="vgt0.1503029982035201" resolveInfo="HandlerCreator" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029982546902" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpce.5092175715804935370" resolveInfo="conceptAlias" />
</node>
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029982548647" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="&lt;" />
</node>
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982554132" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpdg.ConceptFunctionParameter_parameterObject" typeId="tpdg.1177337833147" id="1503029982552557" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029982560118" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</root>
<root type="tpdg.NodeSubstituteActions" typeId="tpdg.1112056943463" id="1503029982941600" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="IOperation_HandlerOperation" />
<node role="actionsBuilder" roleId="tpdg.1112058057696" type="tpdg.NodeSubstituteActionsBuilder" typeId="tpdg.1112058030570" id="1503029982941601" nodeInfo="ng">
<link role="applicableConcept" roleId="tpdg.1112058088712" targetNodeId="tpee.1197027803184" resolveInfo="IOperation" />
<node role="variable" roleId="tpdg.1178540170602" type="tpdg.SubstituteNodeBuilderVariableDeclaration" typeId="tpdg.1178539929008" id="1503029982958882" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="constraints" />
<node role="initializerBlock" roleId="tpdg.1179456561288" type="tpdg.QueryFunction_SubstituteVariableInitializer" typeId="tpdg.1179456248444" id="1503029982958883" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982958884" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982972197" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983000409" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982992701" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.SNodeTypeCastExpression" typeId="tp25.1140137987495" id="1503029982988146" nodeInfo="nn">
<link role="concept" roleId="tp25.1140138128738" targetNodeId="vgt0.1503029981964506" resolveInfo="HandlerType" />
<node role="leftExpression" roleId="tp25.1140138123956" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982972199" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.SNodeTypeCastExpression" typeId="tp25.1140137987495" id="1503029982972200" nodeInfo="nn">
<property name="asCast" nameId="tp25.1238684351431" value="true" />
<link role="concept" roleId="tp25.1140138128738" targetNodeId="tpee.1197027756228" resolveInfo="DotExpression" />
<node role="leftExpression" roleId="tp25.1140138123956" type="tpdg.ConceptFunctionParameter_parentNode" typeId="tpdg.1154465273778" id="1503029982972201" nodeInfo="nn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_ConceptMethodCall" typeId="tp25.1179409122411" id="1503029982972202" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="tpek.8871623299328377715" resolveInfo="getOperandType" />
</node>
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029982997392" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029982163244" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029983008945" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.456733934405771625" />
</node>
</node>
</node>
</node>
</node>
<node role="type" roleId="tpee.5680397130376446158" type="tp25.SNodeListType" typeId="tp25.1145383075378" id="1503029982959972" nodeInfo="in">
<link role="elementConcept" roleId="tp25.1145383142433" targetNodeId="vgt0.456733934405496212" resolveInfo="ConstraintDeclaration" />
</node>
</node>
<node role="precondition" roleId="tpdg.1154465386371" type="tpdg.NodeSubstitutePreconditionFunction" typeId="tpdg.1154465102724" id="1503029982943230" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982943231" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982943989" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982951145" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982947458" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.SNodeTypeCastExpression" typeId="tp25.1140137987495" id="1503029982944838" nodeInfo="nn">
<property name="asCast" nameId="tp25.1238684351431" value="true" />
<link role="concept" roleId="tp25.1140138128738" targetNodeId="tpee.1197027756228" resolveInfo="DotExpression" />
<node role="leftExpression" roleId="tp25.1140138123956" type="tpdg.ConceptFunctionParameter_parentNode" typeId="tpdg.1154465273778" id="1503029982943988" nodeInfo="nn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_ConceptMethodCall" typeId="tp25.1179409122411" id="1503029982950111" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="tpek.8871623299328377715" resolveInfo="getOperandType" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_IsInstanceOfOperation" typeId="tp25.1139621453865" id="1503029982952429" nodeInfo="nn">
<node role="conceptArgument" roleId="tp25.1177027386292" type="tp25.RefConcept_Reference" typeId="tp25.1177026924588" id="1503029982953423" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1177026940964" targetNodeId="vgt0.1503029981964506" resolveInfo="HandlerType" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="part" roleId="tpdg.1177324142645" type="tpdg.AddMenuPart" typeId="tpdg.1177323996388" id="1503029982957542" nodeInfo="ng">
<link role="concept" roleId="tpdg.1177333551023" targetNodeId="vgt0.1503029983897936" resolveInfo="ConstraintOperation" />
<node role="part" roleId="tpdg.1177333559040" type="tpdg.ParameterizedSubstituteMenuPart" typeId="tpdg.1177337641126" id="1503029983018177" nodeInfo="ng">
<node role="type" roleId="tpdg.1177337679534" type="tp25.SNodeType" typeId="tp25.1138055754698" id="1503029983020029" nodeInfo="in">
<link role="concept" roleId="tp25.1138405853777" targetNodeId="vgt0.456733934405496212" resolveInfo="ConstraintDeclaration" />
</node>
<node role="query" roleId="tpdg.1177338017561" type="tpdg.QueryFunction_ParameterizedSubstitute_Query" typeId="tpdg.1177337890340" id="1503029983018179" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983018180" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029983022025" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpdg.SubstituteNodeBuilderVariableReference" typeId="tpdg.1178541723620" id="1503029983022024" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029982958882" resolveInfo="constraints" />
</node>
</node>
</node>
</node>
<node role="handler" roleId="tpdg.1177339421668" type="tpdg.QueryFunction_ParameterizedSubstitute_Handler" typeId="tpdg.1177339225103" id="1503029983018181" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983018182" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029983109773" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tp3r.NodeBuilder" typeId="tp3r.5455284157993863837" id="1503029983109771" nodeInfo="nn">
<node role="quotedNode" roleId="tp3r.5455284157993863838" type="tp3r.NodeBuilderNode" typeId="tp3r.5455284157993863840" id="1503029983110153" nodeInfo="nn">
<link role="concept" roleId="tp3r.5455284157993910961" targetNodeId="vgt0.1503029982882979" resolveInfo="TellConstraintOperation" />
<node role="values" roleId="tp3r.5455284157993911099" type="tp3r.NodeBuilderInitLink" typeId="tp3r.5455284157994012186" id="1503029983110636" nodeInfo="ng">
<link role="link" roleId="tp3r.5455284157994012188" targetNodeId="vgt0.1503029983918490" />
<node role="expression" roleId="tp3r.5455284157993911094" type="tp3r.NodeBuilderExpression" typeId="tp3r.8182547171709752110" id="1503029983110993" nodeInfo="nn">
<node role="expression" roleId="tp3r.8182547171709752112" type="tpdg.ConceptFunctionParameter_parameterObject" typeId="tpdg.1177337833147" id="1503029983111248" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="matchingText" roleId="tpdg.1177339176647" type="tpdg.QueryFunction_ParameterizedSubstitute_String" typeId="tpdg.1177339114370" id="1503029983025167" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983025168" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029983096457" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983098444" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.ConceptRefExpression" typeId="tp25.1172424058054" id="1503029983096456" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1172424100906" targetNodeId="vgt0.1503029982882979" resolveInfo="TellConstraintOperation" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_ConceptMethodCall" typeId="tp25.1179409122411" id="1503029983100449" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="1f2y.1503029983924501" resolveInfo="operationName" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983106208" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpdg.ConceptFunctionParameter_parameterObject" typeId="tpdg.1177337833147" id="1503029983105681" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029983107525" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="part" roleId="tpdg.1177333559040" type="tpdg.ParameterizedSubstituteMenuPart" typeId="tpdg.1177337641126" id="1503029983881192" nodeInfo="ng">
<node role="type" roleId="tpdg.1177337679534" type="tp25.SNodeType" typeId="tp25.1138055754698" id="1503029983881193" nodeInfo="in">
<link role="concept" roleId="tp25.1138405853777" targetNodeId="vgt0.456733934405496212" resolveInfo="ConstraintDeclaration" />
</node>
<node role="query" roleId="tpdg.1177338017561" type="tpdg.QueryFunction_ParameterizedSubstitute_Query" typeId="tpdg.1177337890340" id="1503029983881194" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983881195" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029983881196" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpdg.SubstituteNodeBuilderVariableReference" typeId="tpdg.1178541723620" id="1503029983881197" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029982958882" resolveInfo="constraints" />
</node>
</node>
</node>
</node>
<node role="handler" roleId="tpdg.1177339421668" type="tpdg.QueryFunction_ParameterizedSubstitute_Handler" typeId="tpdg.1177339225103" id="1503029983881198" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983881199" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029983881200" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tp3r.NodeBuilder" typeId="tp3r.5455284157993863837" id="1503029983881201" nodeInfo="nn">
<node role="quotedNode" roleId="tp3r.5455284157993863838" type="tp3r.NodeBuilderNode" typeId="tp3r.5455284157993863840" id="1503029983881202" nodeInfo="nn">
<link role="concept" roleId="tp3r.5455284157993910961" targetNodeId="vgt0.1503029983867083" resolveInfo="AllConstraintsOperation" />
<node role="values" roleId="tp3r.5455284157993911099" type="tp3r.NodeBuilderInitLink" typeId="tp3r.5455284157994012186" id="1503029983881203" nodeInfo="ng">
<link role="link" roleId="tp3r.5455284157994012188" targetNodeId="vgt0.1503029983918490" />
<node role="expression" roleId="tp3r.5455284157993911094" type="tp3r.NodeBuilderExpression" typeId="tp3r.8182547171709752110" id="1503029983881204" nodeInfo="nn">
<node role="expression" roleId="tp3r.8182547171709752112" type="tpdg.ConceptFunctionParameter_parameterObject" typeId="tpdg.1177337833147" id="1503029983881205" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="matchingText" roleId="tpdg.1177339176647" type="tpdg.QueryFunction_ParameterizedSubstitute_String" typeId="tpdg.1177339114370" id="1503029983881206" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983881207" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029983881208" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983881209" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.ConceptRefExpression" typeId="tp25.1172424058054" id="1503029983881210" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1172424100906" targetNodeId="vgt0.1503029983867083" resolveInfo="AllConstraintsOperation" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_ConceptMethodCall" typeId="tp25.1179409122411" id="1503029983881211" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="1f2y.1503029983924501" resolveInfo="operationName" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983881212" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpdg.ConceptFunctionParameter_parameterObject" typeId="tpdg.1177337833147" id="1503029983881213" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029983881214" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</root>
</model>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<model modelUID="r:c2e9552f-aeab-4773-af70-c663afdf96a5(jetbrains.mps.jchr.behavior)">
<model modelUID="r:c2e9552f-aeab-4773-af70-c663afdf96a5(jetbrains.mps.jchr.behavior)" version="0">
<persistence version="8" />
<language namespace="af65afd8-f0dd-4942-87d9-63a55f2a9db1(jetbrains.mps.lang.behavior)" />
<devkit namespace="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="rzz2" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang.annotation(JDK/java.lang.annotation@java_stub)" version="-1" />
<import index="9sk9" modelUID="f:java_stub#b984ee52-f34d-4b6d-8812-866c1d3eae31#annotations(jetbrains.mps.jchr.runtime/annotations@java_stub)" version="-1" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" />
@ -16,7 +16,9 @@
<import index="cx9y" modelUID="r:309aeee7-bee8-445c-b31d-35928d1da75f(jetbrains.mps.baseLanguage.tuples.structure)" version="2" implicit="yes" />
<import index="tp2c" modelUID="r:00000000-0000-4000-0000-011c89590338(jetbrains.mps.baseLanguage.closures.structure)" version="3" implicit="yes" />
<import index="tp3r" modelUID="r:00000000-0000-4000-0000-011c8959034b(jetbrains.mps.lang.quotation.structure)" version="0" implicit="yes" />
<import index="tpce" modelUID="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" version="0" implicit="yes" />
<root type="1i04.ConceptBehavior" typeId="1i04.1225194240794" id="10398748702943369" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="concept" roleId="1i04.1225194240799" targetNodeId="vgt0.456733934405447580" resolveInfo="Rule" />
<node role="method" roleId="1i04.1225194240805" type="1i04.ConceptMethodDeclaration" typeId="1i04.1225194472830" id="10398748702943574" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="headConstraints" />
@ -35,6 +37,7 @@
</node>
</root>
<root type="1i04.ConceptBehavior" typeId="1i04.1225194240794" id="10398748702943985" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="concept" roleId="1i04.1225194240799" targetNodeId="vgt0.456733934405449669" resolveInfo="SimplificationRule" />
<node role="constructor" roleId="1i04.1225194240801" type="1i04.ConceptConstructorDeclaration" typeId="1i04.1225194413805" id="10398748702943986" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="10398748702943987" nodeInfo="sn" />
@ -68,6 +71,7 @@
</node>
</root>
<root type="1i04.ConceptBehavior" typeId="1i04.1225194240794" id="10398748702948744" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="concept" roleId="1i04.1225194240799" targetNodeId="vgt0.456733934405449659" resolveInfo="PropagationRule" />
<node role="constructor" roleId="1i04.1225194240801" type="1i04.ConceptConstructorDeclaration" typeId="1i04.1225194413805" id="10398748702948745" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="10398748702948746" nodeInfo="sn" />
@ -101,6 +105,7 @@
</node>
</root>
<root type="1i04.ConceptBehavior" typeId="1i04.1225194240794" id="1516699528205220593" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="concept" roleId="1i04.1225194240799" targetNodeId="vgt0.456733934405449678" resolveInfo="SimpagationRule" />
<node role="constructor" roleId="1i04.1225194240801" type="1i04.ConceptConstructorDeclaration" typeId="1i04.1225194413805" id="1516699528205220745" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1516699528205220746" nodeInfo="sn" />
@ -149,6 +154,7 @@
</node>
</root>
<root type="1i04.ConceptBehavior" typeId="1i04.1225194240794" id="7932111957672710716" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="concept" roleId="1i04.1225194240799" targetNodeId="vgt0.7932111957672597360" resolveInfo="SolverDeclaration" />
<node role="method" roleId="1i04.1225194240805" type="1i04.ConceptMethodDeclaration" typeId="1i04.1225194472830" id="7932111957672735205" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="constraints" />
@ -1150,5 +1156,165 @@
</node>
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="7932111957672711962" nodeInfo="nn" />
</root>
<root type="1i04.ConceptBehavior" typeId="1i04.1225194240794" id="1503029983923929" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="concept" roleId="1i04.1225194240799" targetNodeId="vgt0.1503029983897936" resolveInfo="ConstraintOperation" />
<node role="constructor" roleId="1i04.1225194240801" type="1i04.ConceptConstructorDeclaration" typeId="1i04.1225194413805" id="1503029983923930" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983923931" nodeInfo="sn" />
</node>
<node role="method" roleId="1i04.1225194240805" type="1i04.ConceptMethodDeclaration" typeId="1i04.1225194472830" id="1503029983924501" nodeInfo="ng">
<property name="isStatic" nameId="1i04.5864038008284099149" value="true" />
<property name="name" nameId="tpck.1169194664001" value="operationName" />
<node role="parameter" roleId="tpee.1068580123134" type="tpee.ParameterDeclaration" typeId="tpee.1068498886292" id="1503029983924502" nodeInfo="ir">
<property name="name" nameId="tpck.1169194664001" value="cn" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.StringType" typeId="tpee.1225271177708" id="1503029983924503" nodeInfo="in" />
</node>
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="1503029983924504" nodeInfo="nn" />
<node role="returnType" roleId="tpee.1068580123133" type="tpee.StringType" typeId="tpee.1225271177708" id="1503029983924505" nodeInfo="in" />
<node role="body" roleId="tpee.1068580123135" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983924506" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.IfStatement" typeId="tpee.1068580123159" id="1503029983924507" nodeInfo="nn">
<node role="ifTrue" roleId="tpee.1068580123161" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983924508" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ReturnStatement" typeId="tpee.1068581242878" id="1503029983924509" nodeInfo="nn">
<node role="expression" roleId="tpee.1068581517676" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983924510" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="1i04.ThisNodeExpression" typeId="1i04.1225194691553" id="1503029983924511" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029983924512" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpce.5092175715804935370" resolveInfo="conceptAlias" />
</node>
</node>
</node>
</node>
<node role="condition" roleId="tpee.1068580123160" type="tpee.OrExpression" typeId="tpee.1080223426719" id="1503029983924513" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.EqualsExpression" typeId="tpee.1068580123152" id="1503029983924514" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029983924515" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="0" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983924516" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029983924517" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029983924502" resolveInfo="cn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="1503029983924518" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="e2lb.~String%dlength()%cint" resolveInfo="length" />
</node>
</node>
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.EqualsExpression" typeId="tpee.1068580123152" id="1503029983924519" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029983924520" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029983924502" resolveInfo="cn" />
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029983924521" nodeInfo="nn" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029983924522" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029983924523" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.SubstringExpression" typeId="tpee.1225271484915" id="1503029983924524" nodeInfo="nn">
<node role="operand" roleId="tpee.1225271484916" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029983924525" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029983924502" resolveInfo="cn" />
</node>
<node role="startIndex" roleId="tpee.1225271484917" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029983924526" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="1" />
</node>
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029983924527" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983924528" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="1i04.ThisNodeExpression" typeId="1i04.1225194691553" id="1503029983924529" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029983924530" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpce.5092175715804935370" resolveInfo="conceptAlias" />
</node>
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983924531" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.SubstringExpression" typeId="tpee.1225271484915" id="1503029983924532" nodeInfo="nn">
<node role="operand" roleId="tpee.1225271484916" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029983924533" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029983924502" resolveInfo="cn" />
</node>
<node role="endIndex" roleId="tpee.1225271484918" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029983924534" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="1" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="1503029983924535" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="e2lb.~String%dtoUpperCase()%cjava%dlang%dString" resolveInfo="toUpperCase" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="method" roleId="1i04.1225194240805" type="1i04.ConceptMethodDeclaration" typeId="1i04.1225194472830" id="1503029986232195" nodeInfo="ng">
<property name="isStatic" nameId="1i04.5864038008284099149" value="true" />
<property name="name" nameId="tpck.1169194664001" value="getMethodName" />
<node role="parameter" roleId="tpee.1068580123134" type="tpee.ParameterDeclaration" typeId="tpee.1068498886292" id="1503029986232196" nodeInfo="ir">
<property name="name" nameId="tpck.1169194664001" value="cn" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.StringType" typeId="tpee.1225271177708" id="1503029986232197" nodeInfo="in" />
</node>
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="1503029986232198" nodeInfo="nn" />
<node role="returnType" roleId="tpee.1068580123133" type="tpee.StringType" typeId="tpee.1225271177708" id="1503029986232199" nodeInfo="in" />
<node role="body" roleId="tpee.1068580123135" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986232200" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.IfStatement" typeId="tpee.1068580123159" id="1503029986232201" nodeInfo="nn">
<node role="ifTrue" roleId="tpee.1068580123161" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986232202" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ReturnStatement" typeId="tpee.1068581242878" id="1503029986232203" nodeInfo="nn">
<node role="expression" roleId="tpee.1068581517676" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986232204" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="1i04.ThisNodeExpression" typeId="1i04.1225194691553" id="1503029986232205" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029986232206" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpce.5092175715804935370" resolveInfo="conceptAlias" />
</node>
</node>
</node>
</node>
<node role="condition" roleId="tpee.1068580123160" type="tpee.OrExpression" typeId="tpee.1080223426719" id="1503029986232207" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.EqualsExpression" typeId="tpee.1068580123152" id="1503029986232208" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029986232209" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="0" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986232210" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986232211" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986232196" resolveInfo="cn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="1503029986232212" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="e2lb.~String%dlength()%cint" resolveInfo="length" />
</node>
</node>
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.EqualsExpression" typeId="tpee.1068580123152" id="1503029986232213" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986232214" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986232196" resolveInfo="cn" />
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029986232215" nodeInfo="nn" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986232216" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029986232217" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.SubstringExpression" typeId="tpee.1225271484915" id="1503029986232218" nodeInfo="nn">
<node role="operand" roleId="tpee.1225271484916" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986232219" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986232196" resolveInfo="cn" />
</node>
<node role="startIndex" roleId="tpee.1225271484917" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029986232220" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="1" />
</node>
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029986232221" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029986236364" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="get" />
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986232225" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.SubstringExpression" typeId="tpee.1225271484915" id="1503029986232226" nodeInfo="nn">
<node role="operand" roleId="tpee.1225271484916" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986232227" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986232196" resolveInfo="cn" />
</node>
<node role="endIndex" roleId="tpee.1225271484918" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029986232228" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="1" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="1503029986232229" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="e2lb.~String%dtoUpperCase()%cjava%dlang%dString" resolveInfo="toUpperCase" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</root>
</model>

View File

@ -3,5 +3,231 @@
<persistence version="8" />
<language namespace="3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1(jetbrains.mps.lang.constraints)" />
<devkit namespace="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" />
<import index="1f2y" modelUID="r:c2e9552f-aeab-4773-af70-c663afdf96a5(jetbrains.mps.jchr.behavior)" version="0" />
<import index="tp1t" modelUID="r:00000000-0000-4000-0000-011c8959030d(jetbrains.mps.lang.constraints.structure)" version="9" implicit="yes" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" implicit="yes" />
<import index="tp25" modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" implicit="yes" />
<import index="e2lb" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang(JDK/java.lang@java_stub)" version="-1" implicit="yes" />
<root type="tp1t.ConceptConstraints" typeId="tp1t.1213093968558" id="1503029984724179" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="concept" roleId="tp1t.1213093996982" targetNodeId="vgt0.1503029983897936" resolveInfo="ConstraintOperation" />
<node role="property" roleId="tp1t.1213098023997" type="tp1t.NodePropertyConstraint" typeId="tp1t.1147467115080" id="1503029984725561" nodeInfo="ng">
<link role="applicableProperty" roleId="tp1t.1147467295099" targetNodeId="vgt0.1503029983918983" resolveInfo="operation" />
<node role="propertyGetter" roleId="tp1t.1147468630220" type="tp1t.ConstraintFunction_PropertyGetter" typeId="tp1t.1147467790433" id="1503029984725562" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029984725563" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029984725564" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984725565" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984725566" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp1t.ConstraintsFunctionParameter_node" typeId="tp1t.1147468365020" id="1503029984725567" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetConceptOperation" typeId="tp25.1172323065820" id="1503029984725568" nodeInfo="nn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_ConceptMethodCall" typeId="tp25.1179409122411" id="1503029984725569" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="1f2y.1503029983924501" resolveInfo="operationName" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984725570" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984725571" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp1t.ConstraintsFunctionParameter_node" typeId="tp1t.1147468365020" id="1503029984725572" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029984725573" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029983918490" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029984725574" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="propertySetter" roleId="tp1t.1152963095733" type="tp1t.ConstraintFunction_PropertySetter" typeId="tp1t.1152959968041" id="1503029984725575" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029984725576" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.SingleLineComment" typeId="tpee.6329021646629104954" id="1503029984725577" nodeInfo="nn">
<node role="commentPart" roleId="tpee.6329021646629175155" type="tpee.TextCommentPart" typeId="tpee.6329021646629104957" id="1503029984725578" nodeInfo="nn">
<property name="text" nameId="tpee.6329021646629104958" value="read-only" />
</node>
</node>
</node>
</node>
</node>
<node role="property" roleId="tp1t.1213098023997" type="tp1t.NodePropertyConstraint" typeId="tp1t.1147467115080" id="1503029986214243" nodeInfo="ng">
<link role="applicableProperty" roleId="tp1t.1147467295099" targetNodeId="vgt0.1503029986212460" resolveInfo="methodname" />
<node role="propertyGetter" roleId="tp1t.1147468630220" type="tp1t.ConstraintFunction_PropertyGetter" typeId="tp1t.1147467790433" id="1503029986215307" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986215308" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986224801" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986224802" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986224803" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp1t.ConstraintsFunctionParameter_node" typeId="tp1t.1147468365020" id="1503029986224804" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetConceptOperation" typeId="tp25.1172323065820" id="1503029986224805" nodeInfo="nn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_ConceptMethodCall" typeId="tp25.1179409122411" id="1503029986224806" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="1f2y.1503029983924501" resolveInfo="operationName" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986224807" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986224808" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp1t.ConstraintsFunctionParameter_node" typeId="tp1t.1147468365020" id="1503029986224809" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029986224810" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029983918490" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029986224811" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="propertySetter" roleId="tp1t.1152963095733" type="tp1t.ConstraintFunction_PropertySetter" typeId="tp1t.1152959968041" id="1503029986216023" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986216024" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.SingleLineComment" typeId="tpee.6329021646629104954" id="1503029986216755" nodeInfo="nn">
<node role="commentPart" roleId="tpee.6329021646629175155" type="tpee.TextCommentPart" typeId="tpee.6329021646629104957" id="1503029986216759" nodeInfo="nn">
<property name="text" nameId="tpee.6329021646629104958" value="read-only" />
</node>
</node>
</node>
</node>
</node>
</root>
<root type="tp1t.ConceptConstraints" typeId="tp1t.1213093968558" id="1503029985095320" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="concept" roleId="tp1t.1213093996982" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
<node role="property" roleId="tp1t.1213098023997" type="tp1t.NodePropertyConstraint" typeId="tp1t.1147467115080" id="1503029985095426" nodeInfo="ng">
<link role="applicableProperty" roleId="tp1t.1147467295099" targetNodeId="vgt0.1503029985094820" resolveInfo="classname" />
<node role="propertyGetter" roleId="tp1t.1147468630220" type="tp1t.ConstraintFunction_PropertyGetter" typeId="tp1t.1147467790433" id="1503029985095536" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985095537" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="1503029985104644" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="1503029985104645" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="name" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.StringType" typeId="tpee.1225271177708" id="1503029985104641" nodeInfo="in" />
<node role="initializer" roleId="tpee.1068431790190" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985104646" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp1t.ConstraintsFunctionParameter_node" typeId="tp1t.1147468365020" id="1503029985104647" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029985104648" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.IfStatement" typeId="tpee.1068580123159" id="1503029985106478" nodeInfo="nn">
<node role="ifTrue" roleId="tpee.1068580123161" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985106481" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ReturnStatement" typeId="tpee.1068581242878" id="1503029985118487" nodeInfo="nn">
<node role="expression" roleId="tpee.1068581517676" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029985120075" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="?Handler" />
</node>
</node>
</node>
<node role="condition" roleId="tpee.1068580123160" type="tpee.OrExpression" typeId="tpee.1080223426719" id="1503029985110603" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.EqualsExpression" typeId="tpee.1068580123152" id="1503029985117559" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029985118031" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="0" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985112768" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029985111623" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029985104645" resolveInfo="name" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="1503029985114819" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="e2lb.~String%dlength()%cint" resolveInfo="length" />
</node>
</node>
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.EqualsExpression" typeId="tpee.1068580123152" id="1503029985108519" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029985107466" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029985104645" resolveInfo="name" />
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1503029985109558" nodeInfo="nn" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029985097260" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029986160527" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029986160532" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="Handler" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029985134010" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029985127137" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.SubstringExpression" typeId="tpee.1225271484915" id="1503029985122176" nodeInfo="nn">
<node role="operand" roleId="tpee.1225271484916" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029985104649" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029985104645" resolveInfo="name" />
</node>
<node role="endIndex" roleId="tpee.1225271484918" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029985125552" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="1" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="1503029985131655" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="e2lb.~String%dtoUpperCase()%cjava%dlang%dString" resolveInfo="toUpperCase" />
</node>
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.SubstringExpression" typeId="tpee.1225271484915" id="1503029985135913" nodeInfo="nn">
<node role="operand" roleId="tpee.1225271484916" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029985134568" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029985104645" resolveInfo="name" />
</node>
<node role="startIndex" roleId="tpee.1225271484917" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029985137869" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="1" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="propertySetter" roleId="tp1t.1152963095733" type="tp1t.ConstraintFunction_PropertySetter" typeId="tp1t.1152959968041" id="1503029985096198" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029985096199" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.SingleLineComment" typeId="tpee.6329021646629104954" id="1503029985096930" nodeInfo="nn">
<node role="commentPart" roleId="tpee.6329021646629175155" type="tpee.TextCommentPart" typeId="tpee.6329021646629104957" id="1503029985096942" nodeInfo="nn">
<property name="text" nameId="tpee.6329021646629104958" value="read-only" />
</node>
</node>
</node>
</node>
</node>
</root>
<root type="tp1t.ConceptConstraints" typeId="tp1t.1213093968558" id="1503029986226199" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="concept" roleId="tp1t.1213093996982" targetNodeId="vgt0.1503029983867083" resolveInfo="AllConstraintsOperation" />
<node role="property" roleId="tp1t.1213098023997" type="tp1t.NodePropertyConstraint" typeId="tp1t.1147467115080" id="1503029986226254" nodeInfo="ng">
<link role="applicableProperty" roleId="tp1t.1147467295099" targetNodeId="vgt0.1503029986212460" resolveInfo="methodname" />
<node role="propertyGetter" roleId="tp1t.1147468630220" type="tp1t.ConstraintFunction_PropertyGetter" typeId="tp1t.1147467790433" id="1503029986226364" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986226365" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986240721" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029986242229" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029986242234" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="Constraints" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986240722" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986240723" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp1t.ConstraintsFunctionParameter_node" typeId="tp1t.1147468365020" id="1503029986240724" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetConceptOperation" typeId="tp25.1172323065820" id="1503029986240725" nodeInfo="nn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_ConceptMethodCall" typeId="tp25.1179409122411" id="1503029986240726" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="1f2y.1503029986232195" resolveInfo="getMethodName" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986240727" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986240728" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp1t.ConstraintsFunctionParameter_node" typeId="tp1t.1147468365020" id="1503029986240729" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029986240730" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029983918490" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="1503029986240731" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="propertySetter" roleId="tp1t.1152963095733" type="tp1t.ConstraintFunction_PropertySetter" typeId="tp1t.1152959968041" id="1503029986227744" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986227745" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.SingleLineComment" typeId="tpee.6329021646629104954" id="1503029986228476" nodeInfo="nn">
<node role="commentPart" roleId="tpee.6329021646629175155" type="tpee.TextCommentPart" typeId="tpee.6329021646629104957" id="1503029986228488" nodeInfo="nn">
<property name="text" nameId="tpee.6329021646629104958" value="read-only" />
</node>
</node>
</node>
</node>
</node>
</root>
</model>

View File

@ -5,9 +5,9 @@
<language namespace="a247e09e-2435-45ba-b8d2-07e93feba96a(jetbrains.mps.baseLanguage.tuples)" />
<language namespace="0272d3b4-4cc8-481e-9e2f-07793fbfcb41(jetbrains.mps.lang.editor.table)" />
<devkit namespace="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
<import index="1f2y" modelUID="r:c2e9552f-aeab-4773-af70-c663afdf96a5(jetbrains.mps.jchr.behavior)" version="-1" />
<import index="1f2y" modelUID="r:c2e9552f-aeab-4773-af70-c663afdf96a5(jetbrains.mps.jchr.behavior)" version="0" />
<import index="squ6" modelUID="r:b60215f1-3d3e-41cc-8321-723ef8eb59dd(jetbrains.mps.lang.editor.table.runtime)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="tpen" modelUID="r:00000000-0000-4000-0000-011c895902c3(jetbrains.mps.baseLanguage.editor)" version="-1" />
<import index="tp2u" modelUID="r:00000000-0000-4000-0000-011c8959032a(jetbrains.mps.baseLanguage.collections.editor)" version="-1" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" />
@ -19,6 +19,7 @@
<import index="cx9y" modelUID="r:309aeee7-bee8-445c-b31d-35928d1da75f(jetbrains.mps.baseLanguage.tuples.structure)" version="2" implicit="yes" />
<root type="tpc2.EditorComponentDeclaration" typeId="tpc2.1078938745671" id="456733934405496302" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="Constraint_Call" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405414274" resolveInfo="Constraint" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405515840" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefCell" typeId="tpc2.1088013125922" id="456733934405515851" nodeInfo="ng">
@ -27,7 +28,7 @@
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Property" typeId="tpc2.1073389658414" id="456733934405515857" nodeInfo="ng">
<property name="readOnly" nameId="tpc2.1140017977771" value="true" />
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="tpck.1169194664001" resolveInfo="name" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.1215090647074" resolveInfo="MethodName" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.7730231143345707542" resolveInfo="MPSMethodCall" />
</node>
</node>
</node>
@ -75,6 +76,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405723573" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405450312" resolveInfo="LogicVariable" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Property" typeId="tpc2.1073389658414" id="456733934405723575" nodeInfo="ng">
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="tpck.1169194664001" resolveInfo="name" />
@ -82,6 +84,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405724527" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405724502" resolveInfo="Head" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405732685" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNodeList" typeId="tpc2.1073390211982" id="456733934405732686" nodeInfo="ng">
@ -93,6 +96,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405732769" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405724637" resolveInfo="Body" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405732771" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNodeList" typeId="tpc2.1073390211982" id="456733934405732778" nodeInfo="ng">
@ -111,6 +115,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405732888" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405724682" resolveInfo="Guard" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405732890" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNodeList" typeId="tpc2.1073390211982" id="456733934405732897" nodeInfo="ng">
@ -122,6 +127,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405733115" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405449659" resolveInfo="PropagationRule" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405733117" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNode" typeId="tpc2.1073389882823" id="456733934405750172" nodeInfo="ng">
@ -178,6 +184,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405751108" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405449669" resolveInfo="SimplificationRule" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405751170" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNode" typeId="tpc2.1073389882823" id="456733934405751171" nodeInfo="ng">
@ -234,6 +241,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405753451" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405449678" resolveInfo="SimpagationRule" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405753513" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNode" typeId="tpc2.1073389882823" id="456733934405753514" nodeInfo="ng">
@ -296,6 +304,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405757624" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405496212" resolveInfo="ConstraintDeclaration" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405757626" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="7932111957672608321" nodeInfo="nn">
@ -322,6 +331,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="456733934405759318" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="456733934405759327" nodeInfo="nn">
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="456733934405759328" nodeInfo="nn" />
@ -453,6 +463,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="7932111957672600219" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.7932111957672597360" resolveInfo="SolverDeclaration" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="7932111957672607224" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="7932111957672607725" nodeInfo="nn">
@ -565,10 +576,11 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="7932111957674155503" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.7932111957674142861" resolveInfo="BuiltinConstraint" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="3562712610792882948" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_ReadOnlyModelAccessor" typeId="tpc2.1225900081164" id="3562712610792882949" nodeInfo="ng">
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.1215090647074" resolveInfo="MethodName" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.7730231143345707542" resolveInfo="MPSMethodCall" />
<node role="modelAccessor" roleId="tpc2.1225900141900" type="tpc2.ReadOnlyModelAccessor" typeId="tpc2.1225898583838" id="3562712610792882950" nodeInfo="ng">
<node role="getter" roleId="tpc2.1225898971709" type="tpc2.QueryFunction_ModelAccess_Getter" typeId="tpc2.1176717841777" id="3562712610792882951" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610792882952" nodeInfo="sn">
@ -631,6 +643,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="7932111957678817575" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.7932111957678809936" resolveInfo="LocalDeclaration" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="7932111957678817685" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="7932111957678817746" nodeInfo="nn">
@ -648,6 +661,7 @@
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="3562712610792859491" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.3562712610792856834" resolveInfo="InfixBuitinConstraint" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="3562712610792862480" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNode" typeId="tpc2.1073389882823" id="3562712610792868574" nodeInfo="ng">
@ -697,5 +711,116 @@
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="3562712610792862525" nodeInfo="nn" />
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="1503029982159952" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.1503029982035201" resolveInfo="HandlerCreator" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="1503029982160390" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029982160451" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="handler" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.1186415544875" resolveInfo="KeyWord" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029982161213" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="&lt;" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.8171260302110651849" resolveInfo="LeftAngleBracket" />
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.PunctuationLeftStyleClassItem" typeId="tpc2.1233758997495" id="1503029982736978" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefCell" typeId="tpc2.1088013125922" id="1503029982161933" nodeInfo="ng">
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="vgt0.1503029982159404" />
<node role="editorComponent" roleId="tpc2.1088186146602" type="tpc2.InlineEditorComponent" typeId="tpc2.1088185857835" id="1503029982161934" nodeInfo="ng">
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Property" typeId="tpc2.1073389658414" id="1503029982162050" nodeInfo="ng">
<property name="readOnly" nameId="tpc2.1140017977771" value="true" />
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029982161275" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="&gt;" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.8171260302110651850" resolveInfo="RightAngleBracket" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029984917480" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="(" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.1234958090348" resolveInfo="LeftParenAfterName" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNodeList" typeId="tpc2.1073390211982" id="1503029984920147" nodeInfo="ng">
<property name="separatorText" nameId="tpc2.1140524450557" value="," />
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="vgt0.1503029984919269" />
<node role="cellLayout" roleId="tpc2.1140524464360" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="1503029984920148" nodeInfo="nn" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029984917554" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value=")" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.1215088010675" resolveInfo="RightParen" />
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="1503029982160393" nodeInfo="nn" />
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="1503029982164971" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.1503029981964506" resolveInfo="HandlerType" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="1503029982165051" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029982165052" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="handler" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.1186415544875" resolveInfo="KeyWord" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029982165053" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="&lt;" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.8171260302110651849" resolveInfo="LeftAngleBracket" />
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.PunctuationLeftStyleClassItem" typeId="tpc2.1233758997495" id="1503029982732561" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefCell" typeId="tpc2.1088013125922" id="1503029982165054" nodeInfo="ng">
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="vgt0.1503029982163244" />
<node role="editorComponent" roleId="tpc2.1088186146602" type="tpc2.InlineEditorComponent" typeId="tpc2.1088185857835" id="1503029982165055" nodeInfo="ng">
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Property" typeId="tpc2.1073389658414" id="1503029982165056" nodeInfo="ng">
<property name="readOnly" nameId="tpc2.1140017977771" value="true" />
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029982165057" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="&gt;" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tp2u.1215709621223" resolveInfo="RightAngleBracket" />
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="1503029982165058" nodeInfo="nn" />
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="1503029982799468" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.1503029981970139" resolveInfo="ParameterizedConstraintOperation" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="1503029982802261" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Property" typeId="tpc2.1073389658414" id="1503029982802376" nodeInfo="ng">
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="vgt0.1503029983918983" resolveInfo="operation" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.7730231143345707542" resolveInfo="MPSMethodCall" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029982811652" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="(" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.1234958090348" resolveInfo="LeftParenAfterName" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNodeList" typeId="tpc2.1073390211982" id="1503029982813528" nodeInfo="ng">
<property name="separatorText" nameId="tpc2.1140524450557" value="," />
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="vgt0.1503029982813032" />
<node role="cellLayout" roleId="tpc2.1140524464360" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="1503029982813529" nodeInfo="nn" />
<node role="separatorStyle" roleId="tpc2.1233141163694" type="tpc2.InlineStyleDeclaration" typeId="tpc2.1233148810477" id="1503029983583599" nodeInfo="ng" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="1503029982812286" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value=")" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.1215088010675" resolveInfo="RightParen" />
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="1503029982802264" nodeInfo="nn" />
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="1503029984290509" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="vgt0.1503029983897936" resolveInfo="ConstraintOperation" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="1503029984292126" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Property" typeId="tpc2.1073389658414" id="1503029984292127" nodeInfo="ng">
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="vgt0.1503029983918983" resolveInfo="operation" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.7730231143345707542" resolveInfo="MPSMethodCall" />
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="1503029984292133" nodeInfo="nn" />
</node>
</root>
</model>

View File

@ -17,7 +17,7 @@
<import index="fy8e" modelUID="r:89c0fb70-0977-7777-a076-5906f9d8630f(jetbrains.mps.make.facets)" version="0" />
<import index="tpcq" modelUID="r:00000000-0000-4000-0000-011c89590286(jetbrains.mps.lang.core.plugin)" version="0" />
<import index="fn29" modelUID="r:6ba2667b-185e-45cd-ac65-e4b9d66da28e(jetbrains.mps.smodel.resources)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="-1" />
<import index="ec5l" modelUID="f:java_stub#8865b7a8-5271-43d3-884c-6fd1d9cfdd34#org.jetbrains.mps.openapi.model(MPS.OpenAPI/org.jetbrains.mps.openapi.model@java_stub)" version="-1" />
<import index="88zw" modelUID="f:java_stub#8865b7a8-5271-43d3-884c-6fd1d9cfdd34#org.jetbrains.mps.openapi.module(MPS.OpenAPI/org.jetbrains.mps.openapi.module@java_stub)" version="-1" />

View File

@ -1,17 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<model modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)">
<model modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0">
<persistence version="8" />
<language namespace="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" />
<language namespace="f2801650-65d5-424e-bb1b-463a8781b786(jetbrains.mps.baseLanguage.javadoc)" />
<devkit namespace="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" />
<import index="tpce" modelUID="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" version="0" implicit="yes" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" implicit="yes" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" implicit="yes" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" implicit="yes" />
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="456733934405394951" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Handler" />
<property name="rootable" nameId="tpce.1096454100552" value="true" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpee.1068390468198" resolveInfo="ClassConcept" />
<node role="propertyDeclaration" roleId="tpce.1071489727084" type="tpce.PropertyDeclaration" typeId="tpce.1071489288299" id="1503029985094820" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="classname" />
<link role="dataType" roleId="tpce.1082985295845" targetNodeId="tpck.1082983041843" resolveInfo="string" />
</node>
<node role="implements" roleId="tpce.1169129564478" type="tpce.InterfaceConceptReference" typeId="tpce.1169127622168" id="456733934405447574" nodeInfo="ig">
<link role="intfc" roleId="tpce.1169127628841" targetNodeId="tpck.1169194658468" resolveInfo="INamedConcept" />
</node>
@ -42,6 +47,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="456733934405414274" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Constraint" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405496283" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -63,6 +69,7 @@
<property name="name" nameId="tpck.1169194664001" value="Rule" />
<property name="abstract" nameId="tpce.4628067390765956802" value="true" />
<property name="final" nameId="tpce.4628067390765956807" value="false" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpck.1133920641626" resolveInfo="BaseConcept" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405732988" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -85,6 +92,7 @@
<property name="name" nameId="tpck.1169194664001" value="PropagationRule" />
<property name="conceptAlias" nameId="tpce.5092175715804935370" value="==&gt;" />
<property name="conceptShortDescription" nameId="tpce.4628067390765907488" value="propagation rule" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="456733934405447580" resolveInfo="Rule" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405724614" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -97,6 +105,7 @@
<property name="name" nameId="tpck.1169194664001" value="SimplificationRule" />
<property name="conceptAlias" nameId="tpce.5092175715804935370" value="&lt;=&gt;" />
<property name="conceptShortDescription" nameId="tpce.4628067390765907488" value="simplification rule" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="456733934405447580" resolveInfo="Rule" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405733017" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -109,6 +118,7 @@
<property name="name" nameId="tpck.1169194664001" value="SimpagationRule" />
<property name="conceptAlias" nameId="tpce.5092175715804935370" value="&lt;=&gt;" />
<property name="conceptShortDescription" nameId="tpce.4628067390765907488" value="simpagation rule" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="456733934405447580" resolveInfo="Rule" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405733078" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -125,6 +135,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="456733934405450312" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="LogicVariable" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
<node role="implements" roleId="tpce.1169129564478" type="tpce.InterfaceConceptReference" typeId="tpce.1169127622168" id="456733934405496199" nodeInfo="ig">
<link role="intfc" roleId="tpce.1169127628841" targetNodeId="tpck.1169194658468" resolveInfo="INamedConcept" />
@ -135,6 +146,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="456733934405496212" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="ConstraintDeclaration" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpck.1133920641626" resolveInfo="BaseConcept" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405496239" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -148,6 +160,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="456733934405724502" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Head" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpck.1133920641626" resolveInfo="BaseConcept" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405724503" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -158,6 +171,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="456733934405724637" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Body" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpck.1133920641626" resolveInfo="BaseConcept" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405724638" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -168,6 +182,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="456733934405724682" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Guard" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpck.1133920641626" resolveInfo="BaseConcept" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="456733934405732820" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -178,6 +193,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="7932111957672597360" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="SolverDeclaration" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpck.1133920641626" resolveInfo="BaseConcept" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="7932111957672598887" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -188,6 +204,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="7932111957674142861" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="BuiltinConstraint" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
<node role="propertyDeclaration" roleId="tpce.1071489727084" type="tpce.PropertyDeclaration" typeId="tpce.1071489288299" id="7932111957674182862" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="index" />
@ -211,6 +228,7 @@
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="7932111957678809936" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="LocalDeclaration" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpck.1133920641626" resolveInfo="BaseConcept" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="7932111957678818116" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
@ -227,9 +245,11 @@
</root>
<root type="tpce.InterfaceConceptDeclaration" typeId="tpce.1169125989551" id="3562712610788604202" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="IPredicate" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="3562712610792856834" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="InfixBuitinConstraint" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
<node role="propertyDeclaration" roleId="tpce.1071489727084" type="tpce.PropertyDeclaration" typeId="tpce.1071489288299" id="3562712610792896168" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="index" />
@ -257,5 +277,89 @@
<link role="intfc" roleId="tpce.1169127628841" targetNodeId="3562712610788604202" resolveInfo="IPredicate" />
</node>
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="1503029981964506" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="HandlerType" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpee.1068431790189" resolveInfo="Type" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="1503029982163244" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="reference" />
<property name="role" nameId="tpce.1071599776563" value="handler" />
<property name="sourceCardinality" nameId="tpce.1071599893252" value="1" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="456733934405394951" resolveInfo="Handler" />
</node>
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="1503029981970139" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="ParameterizedConstraintOperation" />
<property name="abstract" nameId="tpce.4628067390765956802" value="true" />
<property name="final" nameId="tpce.4628067390765956807" value="false" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="1503029983897936" resolveInfo="ConstraintOperation" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="1503029982813032" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
<property name="role" nameId="tpce.1071599776563" value="parameter" />
<property name="sourceCardinality" nameId="tpce.1071599893252" value="0..n" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
</node>
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="1503029982035201" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="HandlerCreator" />
<property name="conceptAlias" nameId="tpce.5092175715804935370" value="handler" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpee.1145552809883" resolveInfo="AbstractCreator" />
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="1503029984919269" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="aggregation" />
<property name="role" nameId="tpce.1071599776563" value="solver" />
<property name="sourceCardinality" nameId="tpce.1071599893252" value="0..n" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="tpee.1068431790191" resolveInfo="Expression" />
</node>
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="1503029982159404" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="reference" />
<property name="role" nameId="tpce.1071599776563" value="handler" />
<property name="sourceCardinality" nameId="tpce.1071599893252" value="1" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="456733934405394951" resolveInfo="Handler" />
</node>
<node role="implements" roleId="tpce.1169129564478" type="tpce.InterfaceConceptReference" typeId="tpce.1169127622168" id="1503029982512940" nodeInfo="ig">
<link role="intfc" roleId="tpce.1169127628841" targetNodeId="tpck.1835621062190663819" resolveInfo="IDontSubstituteByDefault" />
</node>
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="1503029982882979" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="TellConstraintOperation" />
<property name="conceptAlias" nameId="tpce.5092175715804935370" value="tell" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="1503029981970139" resolveInfo="ParameterizedConstraintOperation" />
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="1503029983867083" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="AllConstraintsOperation" />
<property name="conceptAlias" nameId="tpce.5092175715804935370" value="all" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="1503029983897936" resolveInfo="ConstraintOperation" />
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="1503029983897936" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="ConstraintOperation" />
<property name="abstract" nameId="tpce.4628067390765956802" value="true" />
<property name="final" nameId="tpce.4628067390765956807" value="false" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<link role="extends" roleId="tpce.1071489389519" targetNodeId="tpck.1133920641626" resolveInfo="BaseConcept" />
<node role="implements" roleId="tpce.1169129564478" type="tpce.InterfaceConceptReference" typeId="tpce.1169127622168" id="1503029983898477" nodeInfo="ig">
<link role="intfc" roleId="tpce.1169127628841" targetNodeId="tpee.1197027803184" resolveInfo="IOperation" />
</node>
<node role="implements" roleId="tpce.1169129564478" type="tpce.InterfaceConceptReference" typeId="tpce.1169127622168" id="1503029984761074" nodeInfo="ig">
<link role="intfc" roleId="tpce.1169127628841" targetNodeId="tpck.1835621062190663819" resolveInfo="IDontSubstituteByDefault" />
</node>
<node role="linkDeclaration" roleId="tpce.1071489727083" type="tpce.LinkDeclaration" typeId="tpce.1071489288298" id="1503029983918490" nodeInfo="ig">
<property name="metaClass" nameId="tpce.1071599937831" value="reference" />
<property name="role" nameId="tpce.1071599776563" value="constraint" />
<property name="sourceCardinality" nameId="tpce.1071599893252" value="1" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="456733934405496212" resolveInfo="ConstraintDeclaration" />
</node>
<node role="propertyDeclaration" roleId="tpce.1071489727084" type="tpce.PropertyDeclaration" typeId="tpce.1071489288299" id="1503029983918983" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="operation" />
<link role="dataType" roleId="tpce.1082985295845" targetNodeId="tpck.1082983041843" resolveInfo="string" />
</node>
<node role="propertyDeclaration" roleId="tpce.1071489727084" type="tpce.PropertyDeclaration" typeId="tpce.1071489288299" id="1503029986212460" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="methodname" />
<link role="dataType" roleId="tpce.1082985295845" targetNodeId="tpck.1082983041843" resolveInfo="string" />
</node>
</root>
</model>

View File

@ -10,13 +10,14 @@
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" />
<import index="msyo" modelUID="f:java_stub#6ed54515-acc8-4d1e-a16c-9fd6cfe951ea#jetbrains.mps.util(MPS.Core/jetbrains.mps.util@java_stub)" version="-1" />
<import index="1f2y" modelUID="r:c2e9552f-aeab-4773-af70-c663afdf96a5(jetbrains.mps.jchr.behavior)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="2omo" modelUID="r:de0d3c0c-d049-41cf-bbf9-a920ba513cd3(jetbrains.mps.lang.textGen.structure)" version="12" implicit="yes" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="tp25" modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" implicit="yes" />
<import index="tp2q" modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="7" implicit="yes" />
<import index="cx9y" modelUID="r:309aeee7-bee8-445c-b31d-35928d1da75f(jetbrains.mps.baseLanguage.tuples.structure)" version="2" implicit="yes" />
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="1516699528203770265" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="1516699528203770822" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1516699528203770823" nodeInfo="sn">
@ -306,6 +307,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="1516699528204954618" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.456733934405449659" resolveInfo="PropagationRule" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="1516699528204954619" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1516699528204954620" nodeInfo="sn">
@ -399,6 +401,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="1516699528205057084" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.456733934405449678" resolveInfo="SimpagationRule" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="1516699528205057085" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1516699528205057086" nodeInfo="sn">
@ -516,6 +519,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="1516699528205062838" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.456733934405449669" resolveInfo="SimplificationRule" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="1516699528205062839" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1516699528205062840" nodeInfo="sn">
@ -609,6 +613,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="1516699528205142169" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.456733934405414274" resolveInfo="Constraint" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="1516699528205142170" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1516699528205142171" nodeInfo="sn">
@ -667,6 +672,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="1516699528205240406" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.456733934405450312" resolveInfo="LogicVariable" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="1516699528205240407" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1516699528205240408" nodeInfo="sn">
@ -684,6 +690,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="1516699528205473797" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.456733934405496212" resolveInfo="ConstraintDeclaration" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="1516699528205473798" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1516699528205473799" nodeInfo="sn">
@ -748,6 +755,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="7932111957674736492" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.7932111957674142861" resolveInfo="BuiltinConstraint" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="7932111957674736493" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="7932111957674736494" nodeInfo="sn">
@ -833,6 +841,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="7932111957675708079" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.7932111957672597360" resolveInfo="SolverDeclaration" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="7932111957675708080" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="7932111957675708081" nodeInfo="sn">
@ -870,6 +879,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="7932111957678876440" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.7932111957678809936" resolveInfo="LocalDeclaration" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="7932111957678876441" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="7932111957678876442" nodeInfo="sn">
@ -908,6 +918,7 @@
</node>
</root>
<root type="2omo.ConceptTextGenDeclaration" typeId="2omo.1233670071145" id="3562712610792888214" nodeInfo="ng">
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.constraints" />
<link role="conceptDeclaration" roleId="2omo.1233670257997" targetNodeId="vgt0.3562712610792856834" resolveInfo="InfixBuitinConstraint" />
<node role="textGenBlock" roleId="2omo.1233749296504" type="2omo.GenerateTextDeclaration" typeId="2omo.1233749247888" id="3562712610792888215" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610792888216" nodeInfo="sn">

View File

@ -2,17 +2,23 @@
<model modelUID="r:0908786d-1897-49e0-bece-5a5d4968324f(jetbrains.mps.jchr.typesystem)">
<persistence version="8" />
<language namespace="7a5dda62-9140-4668-ab76-d5ed1746f2b2(jetbrains.mps.lang.typesystem)" />
<language namespace="d4615e3b-d671-4ba9-af01-2b78369b0ba7(jetbrains.mps.lang.pattern)" />
<devkit namespace="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" />
<import index="w2rx" modelUID="f:java_stub#b984ee52-f34d-4b6d-8812-866c1d3eae31#runtime(jetbrains.mps.jchr.runtime/runtime@java_stub)" version="-1" />
<import index="k7g3" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.util(JDK/java.util@java_stub)" version="-1" />
<import index="tp2c" modelUID="r:00000000-0000-4000-0000-011c89590338(jetbrains.mps.baseLanguage.closures.structure)" version="3" implicit="yes" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="tpd4" modelUID="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" version="7" implicit="yes" />
<import index="tp25" modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" implicit="yes" />
<import index="tp2q" modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="7" implicit="yes" />
<import index="e2lb" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang(JDK/java.lang@java_stub)" version="-1" implicit="yes" />
<import index="tp3r" modelUID="r:00000000-0000-4000-0000-011c8959034b(jetbrains.mps.lang.quotation.structure)" version="0" implicit="yes" />
<import index="tp3t" modelUID="r:00000000-0000-4000-0000-011c89590345(jetbrains.mps.lang.pattern.structure)" version="0" implicit="yes" />
<root type="tpd4.InferenceRule" typeId="tpd4.1174643105530" id="7781107279594908679" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="typeof_LogicVariable" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handler.rules" />
<node role="applicableNode" roleId="tpd4.1174648101952" type="tpd4.ConceptReference" typeId="tpd4.1174642788531" id="7781107279594909842" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="lv" />
<link role="concept" roleId="tpd4.1174642800329" targetNodeId="vgt0.456733934405450312" resolveInfo="LogicVariable" />
@ -265,5 +271,334 @@
</node>
</node>
</root>
<root type="tpd4.InferenceRule" typeId="tpd4.1174643105530" id="1503029982163577" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="typeof_HandlerCreator" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<node role="body" roleId="tpd4.1195213635060" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982163929" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.CreateEquationStatement" typeId="tpd4.1174658326157" id="1503029982243768" nodeInfo="nn">
<node role="rightExpression" roleId="tpd4.1174660783414" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029982243845" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tp3r.NodeBuilder" typeId="tp3r.5455284157993863837" id="1503029982243841" nodeInfo="nn">
<node role="quotedNode" roleId="tp3r.5455284157993863838" type="tp3r.NodeBuilderNode" typeId="tp3r.5455284157993863840" id="1503029982243970" nodeInfo="nn">
<link role="concept" roleId="tp3r.5455284157993910961" targetNodeId="vgt0.1503029981964506" resolveInfo="HandlerType" />
<node role="values" roleId="tp3r.5455284157993911099" type="tp3r.NodeBuilderInitLink" typeId="tp3r.5455284157994012186" id="1503029982244118" nodeInfo="ng">
<link role="link" roleId="tp3r.5455284157994012188" targetNodeId="vgt0.1503029982163244" />
<node role="expression" roleId="tp3r.5455284157993911094" type="tp3r.NodeBuilderExpression" typeId="tp3r.8182547171709752110" id="1503029982244226" nodeInfo="nn">
<node role="expression" roleId="tp3r.8182547171709752112" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029982244449" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029982244296" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029982163931" resolveInfo="handlerCreator" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029982245727" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029982159404" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="leftExpression" roleId="tpd4.1174660783413" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029982243771" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tpd4.TypeOfExpression" typeId="tpd4.1174657487114" id="1503029982243462" nodeInfo="nn">
<node role="term" roleId="tpd4.1174657509053" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029982243609" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029982163931" resolveInfo="handlerCreator" />
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.IfStatement" typeId="tpee.1068580123159" id="1503029984922538" nodeInfo="nn">
<node role="ifTrue" roleId="tpee.1068580123161" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029984922541" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.ReportErrorStatement" typeId="tpd4.1175517767210" id="1503029984964802" nodeInfo="nn">
<node role="errorString" roleId="tpd4.1175517851849" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029984964820" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="mismatched solver parameters count" />
</node>
<node role="nodeToReport" roleId="tpd4.1227096802790" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029984965262" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029982163931" resolveInfo="handlerCreator" />
</node>
</node>
</node>
<node role="condition" roleId="tpee.1068580123160" type="tpee.NotEqualsExpression" typeId="tpee.1073239437375" id="1503029984940534" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984956991" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984945594" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984941768" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029984940885" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029982163931" resolveInfo="handlerCreator" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029984943408" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029982159404" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029984950822" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.7932111957672637404" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp2q.GetSizeOperation" typeId="tp2q.1162935959151" id="1503029984964205" nodeInfo="nn" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984928174" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984922807" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029984922626" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029982163931" resolveInfo="handlerCreator" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029984924399" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.1503029984919269" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp2q.GetSizeOperation" typeId="tp2q.1162935959151" id="1503029984935090" nodeInfo="nn" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tp2q.MultiForEachStatement" typeId="tp2q.9042586985346099698" id="1503029984966080" nodeInfo="nn">
<node role="forEach" roleId="tp2q.9042586985346099734" type="tp2q.MultiForEachPair" typeId="tp2q.9042586985346099733" id="1503029984966082" nodeInfo="ng">
<node role="variable" roleId="tp2q.9042586985346099778" type="tp2q.MultiForEachVariable" typeId="tp2q.9042586985346099736" id="1503029984966084" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="solverParam" />
</node>
<node role="input" roleId="tp2q.9042586985346099735" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984970362" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029984970169" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029982163931" resolveInfo="handlerCreator" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029984972380" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.1503029984919269" />
</node>
</node>
</node>
<node role="forEach" roleId="tp2q.9042586985346099734" type="tp2q.MultiForEachPair" typeId="tp2q.9042586985346099733" id="1503029984973036" nodeInfo="ng">
<node role="variable" roleId="tp2q.9042586985346099778" type="tp2q.MultiForEachVariable" typeId="tp2q.9042586985346099736" id="1503029984973037" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="solverDecl" />
</node>
<node role="input" roleId="tp2q.9042586985346099735" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984974210" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984981063" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029984974017" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029982163931" resolveInfo="handlerCreator" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029984982721" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029982159404" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029984985577" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.7932111957672637404" />
</node>
</node>
</node>
<node role="body" roleId="tpee.1154032183016" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029984966088" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.CreateLessThanInequationStatement" typeId="tpd4.1174663118805" id="1503029984979619" nodeInfo="nn">
<node role="rightExpression" roleId="tpd4.1174660783414" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029984987331" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029984987430" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp2q.MultiForEachVariableReference" typeId="tp2q.8293956702609956630" id="1503029984987330" nodeInfo="nn">
<link role="variable" roleId="tp2q.8293956702609966325" targetNodeId="1503029984973037" resolveInfo="solverDecl" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029984988946" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.7932111957672598887" />
</node>
</node>
</node>
<node role="leftExpression" roleId="tpd4.1174660783413" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029984979622" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tpd4.TypeOfExpression" typeId="tpd4.1174657487114" id="1503029984977751" nodeInfo="nn">
<node role="term" roleId="tpd4.1174657509053" type="tp2q.MultiForEachVariableReference" typeId="tp2q.8293956702609956630" id="1503029984977898" nodeInfo="nn">
<link role="variable" roleId="tp2q.8293956702609966325" targetNodeId="1503029984966084" resolveInfo="solverParam" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="applicableNode" roleId="tpd4.1174648101952" type="tpd4.ConceptReference" typeId="tpd4.1174642788531" id="1503029982163931" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="handlerCreator" />
<link role="concept" roleId="tpd4.1174642800329" targetNodeId="vgt0.1503029982035201" resolveInfo="HandlerCreator" />
</node>
</root>
<root type="tpd4.SubtypingRule" typeId="tpd4.1175147670730" id="1503029982773391" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="supertypesOf_HandlerType" />
<property name="isWeak" nameId="tpd4.1175607673137" value="true" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType" />
<node role="body" roleId="tpd4.1175147624276" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029982773392" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029982774326" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tp3r.Quotation" typeId="tp3r.1196350785113" id="1503029982774324" nodeInfo="nn">
<node role="quotedNode" roleId="tp3r.1196350785114" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="1503029982774574" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="e2lb.~Object" resolveInfo="Object" />
</node>
</node>
</node>
</node>
<node role="applicableNode" roleId="tpd4.1174648101952" type="tpd4.ConceptReference" typeId="tpd4.1174642788531" id="1503029982773877" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="handlerType" />
<link role="concept" roleId="tpd4.1174642800329" targetNodeId="vgt0.1503029981964506" resolveInfo="HandlerType" />
</node>
</root>
<root type="tpd4.InferenceRule" typeId="tpd4.1174643105530" id="1503029983398947" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="typeof_TellConstraintOperation" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<node role="body" roleId="tpd4.1195213635060" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983398948" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.CreateEquationStatement" typeId="tpd4.1174658326157" id="1503029983399969" nodeInfo="nn">
<node role="rightExpression" roleId="tpd4.1174660783414" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029983400112" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tp3r.Quotation" typeId="tp3r.1196350785113" id="1503029983400108" nodeInfo="nn">
<node role="quotedNode" roleId="tp3r.1196350785114" type="tpee.VoidType" typeId="tpee.1068581517677" id="1503029983400253" nodeInfo="in" />
</node>
</node>
<node role="leftExpression" roleId="tpd4.1174660783413" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029983399972" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tpd4.TypeOfExpression" typeId="tpd4.1174657487114" id="1503029983399659" nodeInfo="nn">
<node role="term" roleId="tpd4.1174657509053" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029983399806" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029983398950" resolveInfo="tellConstraintOperation" />
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.IfStatement" typeId="tpee.1068580123159" id="1503029983464773" nodeInfo="nn">
<node role="ifTrue" roleId="tpee.1068580123161" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983464776" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.ReportErrorStatement" typeId="tpd4.1175517767210" id="1503029983496905" nodeInfo="nn">
<node role="errorString" roleId="tpd4.1175517851849" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029983496923" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="mismatched parameters count" />
</node>
<node role="nodeToReport" roleId="tpd4.1227096802790" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029983497297" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029983398950" resolveInfo="tellConstraintOperation" />
</node>
</node>
</node>
<node role="condition" roleId="tpee.1068580123160" type="tpee.NotEqualsExpression" typeId="tpee.1073239437375" id="1503029983480990" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983468906" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983464941" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029983464942" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029983398950" resolveInfo="tellConstraintOperation" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029983464943" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.1503029982813032" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp2q.GetSizeOperation" typeId="tp2q.1162935959151" id="1503029983475922" nodeInfo="nn" />
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983487162" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983481771" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983481772" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029983481773" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029983398950" resolveInfo="tellConstraintOperation" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029983481774" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029983918490" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029983481775" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.456733934405496239" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp2q.GetSizeOperation" typeId="tp2q.1162935959151" id="1503029983496456" nodeInfo="nn" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tp2q.MultiForEachStatement" typeId="tp2q.9042586985346099698" id="1503029983401013" nodeInfo="nn">
<node role="forEach" roleId="tp2q.9042586985346099734" type="tp2q.MultiForEachPair" typeId="tp2q.9042586985346099733" id="1503029983401015" nodeInfo="ng">
<node role="variable" roleId="tp2q.9042586985346099778" type="tp2q.MultiForEachVariable" typeId="tp2q.9042586985346099736" id="1503029983401017" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="param" />
</node>
<node role="input" roleId="tp2q.9042586985346099735" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983401866" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029983401641" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029983398950" resolveInfo="tellConstraintOperation" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029983403594" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.1503029982813032" />
</node>
</node>
</node>
<node role="forEach" roleId="tp2q.9042586985346099734" type="tp2q.MultiForEachPair" typeId="tp2q.9042586985346099733" id="1503029983403705" nodeInfo="ng">
<node role="variable" roleId="tp2q.9042586985346099778" type="tp2q.MultiForEachVariable" typeId="tp2q.9042586985346099736" id="1503029983403706" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="argType" />
</node>
<node role="input" roleId="tp2q.9042586985346099735" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983407324" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029983404469" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029983404190" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029983398950" resolveInfo="tellConstraintOperation" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1503029983406275" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="vgt0.1503029983918490" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkListAccess" typeId="tp25.1138056282393" id="1503029983408735" nodeInfo="nn">
<link role="link" roleId="tp25.1138056546658" targetNodeId="vgt0.456733934405496239" />
</node>
</node>
</node>
<node role="body" roleId="tpee.1154032183016" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983401021" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.CoerceStatement" typeId="tpd4.1176558773329" id="1503029983777543" nodeInfo="nn">
<node role="pattern" roleId="tpd4.1176558876970" type="tpd4.PatternCondition" typeId="tpd4.1174642900584" id="1503029983778015" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="logical" />
<node role="pattern" roleId="tpd4.1174642936809" type="tp3t.PatternExpression" typeId="tp3t.1136720037777" id="1503029983778017" nodeInfo="in">
<node role="patternNode" roleId="tp3t.1136720037778" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="1503029983778473" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="w2rx.~Logical" resolveInfo="Logical" />
<node role="parameter" roleId="tpee.1109201940907" type="tpee.Type" typeId="tpee.1068431790189" id="1503029983778539" nodeInfo="in">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tp3t.PatternVariableDeclaration" typeId="tp3t.1136720037779" id="1503029983780111" nodeInfo="ng">
<property name="varName" nameId="tp3t.1136720037780" value="T" />
</node>
</node>
</node>
</node>
</node>
<node role="nodeToCoerce" roleId="tpd4.1176558919376" type="tp2q.MultiForEachVariableReference" typeId="tp2q.8293956702609956630" id="1503029983777955" nodeInfo="nn">
<link role="variable" roleId="tp2q.8293956702609966325" targetNodeId="1503029983403706" resolveInfo="argType" />
</node>
<node role="body" roleId="tpd4.1176558868203" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983777549" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.CreateLessThanInequationStatement" typeId="tpd4.1174663118805" id="1503029983783318" nodeInfo="nn">
<node role="rightExpression" roleId="tpd4.1174660783414" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029983783319" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tpd4.PatternVariableReference" typeId="tpd4.1174989242422" id="1503029983783876" nodeInfo="nn">
<link role="patternVarDecl" roleId="tpd4.1174989274720" targetNodeId="1503029983780111" />
</node>
</node>
<node role="leftExpression" roleId="tpd4.1174660783413" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029983783321" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tpd4.TypeOfExpression" typeId="tpd4.1174657487114" id="1503029983783322" nodeInfo="nn">
<node role="term" roleId="tpd4.1174657509053" type="tp2q.MultiForEachVariableReference" typeId="tp2q.8293956702609956630" id="1503029983783323" nodeInfo="nn">
<link role="variable" roleId="tp2q.8293956702609966325" targetNodeId="1503029983401017" resolveInfo="param" />
</node>
</node>
</node>
</node>
</node>
<node role="elseClause" roleId="tpd4.1220447035659" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029983783132" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.CreateLessThanInequationStatement" typeId="tpd4.1174663118805" id="1503029983410713" nodeInfo="nn">
<node role="rightExpression" roleId="tpd4.1174660783414" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029983410841" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tp2q.MultiForEachVariableReference" typeId="tp2q.8293956702609956630" id="1503029983410840" nodeInfo="nn">
<link role="variable" roleId="tp2q.8293956702609966325" targetNodeId="1503029983403706" resolveInfo="argType" />
</node>
</node>
<node role="leftExpression" roleId="tpd4.1174660783413" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029983410716" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tpd4.TypeOfExpression" typeId="tpd4.1174657487114" id="1503029983410049" nodeInfo="nn">
<node role="term" roleId="tpd4.1174657509053" type="tp2q.MultiForEachVariableReference" typeId="tp2q.8293956702609956630" id="1503029983410466" nodeInfo="nn">
<link role="variable" roleId="tp2q.8293956702609966325" targetNodeId="1503029983401017" resolveInfo="param" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="applicableNode" roleId="tpd4.1174648101952" type="tpd4.ConceptReference" typeId="tpd4.1174642788531" id="1503029983398950" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="tellConstraintOperation" />
<link role="concept" roleId="tpd4.1174642800329" targetNodeId="vgt0.1503029982882979" resolveInfo="TellConstraintOperation" />
</node>
</root>
<root type="tpd4.InferenceRule" typeId="tpd4.1174643105530" id="1503029984797126" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="typeof_AllConstraintsOperation" />
<property name="virtualPackage" nameId="tpck.1193676396447" value="handlerType.operations" />
<node role="body" roleId="tpd4.1195213635060" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029984797127" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpd4.CreateEquationStatement" typeId="tpd4.1174658326157" id="1503029984797583" nodeInfo="nn">
<node role="rightExpression" roleId="tpd4.1174660783414" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029984797714" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tp3r.Quotation" typeId="tp3r.1196350785113" id="1503029984797710" nodeInfo="nn">
<node role="quotedNode" roleId="tp3r.1196350785114" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="1503029984798962" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="k7g3.~Collection" resolveInfo="Collection" />
<node role="parameter" roleId="tpee.1109201940907" type="tpee.WildCardType" typeId="tpee.1171903607971" id="1503029984799262" nodeInfo="in" />
</node>
</node>
</node>
<node role="leftExpression" roleId="tpd4.1174660783413" type="tpd4.NormalTypeClause" typeId="tpd4.1185788614172" id="1503029984797586" nodeInfo="ng">
<node role="normalType" roleId="tpd4.1185788644032" type="tpd4.TypeOfExpression" typeId="tpd4.1174657487114" id="1503029984797295" nodeInfo="nn">
<node role="term" roleId="tpd4.1174657509053" type="tpd4.ApplicableNodeReference" typeId="tpd4.1174650418652" id="1503029984797442" nodeInfo="nn">
<link role="applicableNode" roleId="tpd4.1174650432090" targetNodeId="1503029984797129" resolveInfo="allConstraintsOperation" />
</node>
</node>
</node>
</node>
</node>
<node role="applicableNode" roleId="tpd4.1174648101952" type="tpd4.ConceptReference" typeId="tpd4.1174642788531" id="1503029984797129" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="allConstraintsOperation" />
<link role="concept" roleId="tpd4.1174642800329" targetNodeId="vgt0.1503029983867083" resolveInfo="AllConstraintsOperation" />
</node>
</root>
</model>

View File

@ -12,7 +12,7 @@
<import index="k7g3" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.util(JDK/java.util@java_stub)" version="-1" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" implicit="yes" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" implicit="yes" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" implicit="yes" />
<root type="vgt0.Handler" typeId="vgt0.456733934405394951" id="10398748702652179" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="gcd" />
<node role="declaration" roleId="vgt0.456733934405771625" type="vgt0.ConstraintDeclaration" typeId="vgt0.456733934405496212" id="10398748702652231" nodeInfo="ng">

View File

@ -10,15 +10,15 @@
<import index="5j4j" modelUID="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" version="-1" />
<import index="ie8e" modelUID="r:ab2605ab-b4bc-4e80-a8ca-19a4a8465c01(jetbrains.mps.unification.tree)" version="-1" />
<import index="tqye" modelUID="r:a96ed64c-59f1-465b-8d59-dbd0e8856971(jetbrains.mps.unification.ast)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" />
<import index="ec5l" modelUID="f:java_stub#8865b7a8-5271-43d3-884c-6fd1d9cfdd34#org.jetbrains.mps.openapi.model(MPS.OpenAPI/org.jetbrains.mps.openapi.model@java_stub)" version="-1" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="tpf8" modelUID="r:00000000-0000-4000-0000-011c895902e8(jetbrains.mps.lang.generator.structure)" version="2" implicit="yes" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" implicit="yes" />
<import index="tp25" modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" implicit="yes" />
<import index="tp2q" modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="7" implicit="yes" />
<import index="tp2c" modelUID="r:00000000-0000-4000-0000-011c89590338(jetbrains.mps.baseLanguage.closures.structure)" version="3" implicit="yes" />
<import index="e2lb" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang(JDK/java.lang@java_stub)" version="-1" implicit="yes" />
<import index="ec5l" modelUID="f:java_stub#8865b7a8-5271-43d3-884c-6fd1d9cfdd34#org.jetbrains.mps.openapi.model(MPS.OpenAPI/org.jetbrains.mps.openapi.model@java_stub)" version="-1" implicit="yes" />
<import index="tpd4" modelUID="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" version="7" implicit="yes" />
<import index="tpf3" modelUID="r:00000000-0000-4000-0000-011c895902f3(jetbrains.mps.lang.generator.generationContext.structure)" version="0" implicit="yes" />
<root type="tpf8.MappingConfiguration" typeId="tpf8.1095416546421" id="6626732309150416986" nodeInfo="ng">

View File

@ -3,16 +3,14 @@
<persistence version="8" />
<language namespace="894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)" />
<language namespace="35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)" />
<language namespace="df345b11-b8c7-4213-ac66-48d2a9b75d88(jetbrains.mps.baseLanguageInternal)" />
<devkit namespace="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
<import index="oy3s" modelUID="r:a6030cee-34eb-4503-b1bf-015fe5cd8c1a(jetbrains.mps.logic.jchr.unification)" version="-1" />
<import index="ie8e" modelUID="r:ab2605ab-b4bc-4e80-a8ca-19a4a8465c01(jetbrains.mps.unification.tree)" version="-1" />
<import index="zcv" modelUID="r:cbad57c9-c211-4e64-ac84-bbfd0fa39faf(jetbrains.mps.unification.util)" version="-1" />
<import index="iqfc" modelUID="r:5e9b336d-b733-4396-b8ed-a74e3ea504fd(jetbrains.mps.jchr.sandbox)" version="-1" />
<import index="k7g3" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.util(JDK/java.util@java_stub)" version="-1" />
<import index="w2rx" modelUID="f:java_stub#b984ee52-f34d-4b6d-8812-866c1d3eae31#runtime(jetbrains.mps.jchr.runtime/runtime@java_stub)" version="-1" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" implicit="yes" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="-1" implicit="yes" />
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" implicit="yes" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="5j4j" modelUID="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" version="-1" implicit="yes" />
<import index="e2lb" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang(JDK/java.lang@java_stub)" version="-1" implicit="yes" />

View File

@ -3,12 +3,14 @@
<persistence version="8" />
<language namespace="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" />
<language namespace="35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)" />
<language namespace="894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)" />
<import index="ie8e" modelUID="r:ab2605ab-b4bc-4e80-a8ca-19a4a8465c01(jetbrains.mps.unification.tree)" version="-1" />
<import index="oy3s" modelUID="r:a6030cee-34eb-4503-b1bf-015fe5cd8c1a(jetbrains.mps.logic.jchr.unification)" version="-1" />
<import index="w2rx" modelUID="f:java_stub#b984ee52-f34d-4b6d-8812-866c1d3eae31#runtime(jetbrains.mps.jchr.runtime/runtime@java_stub)" version="-1" />
<import index="3ypq" modelUID="r:ecf59ef9-2b17-40ee-91aa-e7999d4518f0(jetbrains.mps.unification.sandbox)" version="-1" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" implicit="yes" />
<import index="5j4j" modelUID="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" version="-1" implicit="yes" />
<import index="w2rx" modelUID="f:java_stub#b984ee52-f34d-4b6d-8812-866c1d3eae31#runtime(jetbrains.mps.jchr.runtime/runtime@java_stub)" version="-1" implicit="yes" />
<root type="tpee.ClassConcept" typeId="tpee.1068390468198" id="7932111957675691621" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Forest" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="7932111957678223222" nodeInfo="ngu" />

View File

@ -14,6 +14,8 @@
<usedLanguages>
<usedLanguage>f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)</usedLanguage>
<usedLanguage>df345b11-b8c7-4213-ac66-48d2a9b75d88(jetbrains.mps.baseLanguageInternal)</usedLanguage>
<usedLanguage>894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)</usedLanguage>
<usedLanguage>35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)</usedLanguage>
</usedLanguages>
</solution>

View File

@ -3,160 +3,165 @@
<persistence version="8" />
<language namespace="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" />
<language namespace="df345b11-b8c7-4213-ac66-48d2a9b75d88(jetbrains.mps.baseLanguageInternal)" />
<language namespace="894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)" />
<language namespace="35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)" />
<import index="oy3s" modelUID="r:a6030cee-34eb-4503-b1bf-015fe5cd8c1a(jetbrains.mps.logic.jchr.unification)" version="-1" />
<import index="e2lb" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang(JDK/java.lang@java_stub)" version="-1" />
<import index="zcv" modelUID="r:cbad57c9-c211-4e64-ac84-bbfd0fa39faf(jetbrains.mps.unification.util)" version="-1" />
<import index="k7g3" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.util(JDK/java.util@java_stub)" version="-1" />
<import index="fxg7" modelUID="f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.io(JDK/java.io@java_stub)" version="-1" />
<import index="w2rx" modelUID="f:java_stub#b984ee52-f34d-4b6d-8812-866c1d3eae31#runtime(jetbrains.mps.jchr.runtime/runtime@java_stub)" version="-1" />
<import index="3ypq" modelUID="r:ecf59ef9-2b17-40ee-91aa-e7999d4518f0(jetbrains.mps.unification.sandbox)" version="-1" />
<import index="tpck" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" implicit="yes" />
<import index="tpee" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="5" implicit="yes" />
<import index="tp68" modelUID="r:00000000-0000-4000-0000-011c895903ac(jetbrains.mps.baseLanguageInternal.structure)" version="2" implicit="yes" />
<root type="tpee.ClassConcept" typeId="tpee.1068390468198" id="3562712610788163113" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="TypeOf" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="3562712610788163114" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.StaticMethodDeclaration" typeId="tpee.1081236700938" id="3562712610788163115" nodeInfo="igu">
<import index="vgt0" modelUID="r:f36c95e5-e428-4945-91ae-1005e20c7971(jetbrains.mps.jchr.structure)" version="0" implicit="yes" />
<import index="5j4j" modelUID="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" version="-1" implicit="yes" />
<root type="tpee.ClassConcept" typeId="tpee.1068390468198" id="1503029986085417" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="TestTypeOf" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="1503029986085418" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.StaticMethodDeclaration" typeId="tpee.1081236700938" id="1503029986085419" nodeInfo="igu">
<property name="name" nameId="tpck.1169194664001" value="main" />
<node role="parameter" roleId="tpee.1068580123134" type="tpee.ParameterDeclaration" typeId="tpee.1068498886292" id="3562712610788163116" nodeInfo="ir">
<node role="parameter" roleId="tpee.1068580123134" type="tpee.ParameterDeclaration" typeId="tpee.1068498886292" id="1503029986085420" nodeInfo="ir">
<property name="name" nameId="tpck.1169194664001" value="args" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.ArrayType" typeId="tpee.1070534760951" id="3562712610788163117" nodeInfo="in">
<node role="componentType" roleId="tpee.1070534760952" type="tpee.StringType" typeId="tpee.1225271177708" id="3562712610788163118" nodeInfo="in" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.ArrayType" typeId="tpee.1070534760951" id="1503029986085421" nodeInfo="in">
<node role="componentType" roleId="tpee.1070534760952" type="tpee.StringType" typeId="tpee.1225271177708" id="1503029986085422" nodeInfo="in" />
</node>
</node>
<node role="returnType" roleId="tpee.1068580123133" type="tpee.VoidType" typeId="tpee.1068581517677" id="3562712610788163119" nodeInfo="in" />
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="3562712610788163120" nodeInfo="nn" />
<node role="body" roleId="tpee.1068580123135" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788163121" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.Statement" typeId="tpee.1068580123157" id="3562712610788163122" nodeInfo="nn" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="3562712610788163123" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="3562712610788163124" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="solver" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="3562712610788163125" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="oy3s.7337323408787456023" resolveInfo="UnificationSolver" />
</node>
<node role="initializer" roleId="tpee.1068431790190" type="tpee.GenericNewExpression" typeId="tpee.1145552977093" id="3562712610788163126" nodeInfo="nn">
<node role="creator" roleId="tpee.1145553007750" type="tpee.ClassCreator" typeId="tpee.1212685548494" id="3562712610788163127" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="oy3s.5667087533488904329" resolveInfo="UnificationSolverImpl" />
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.Statement" typeId="tpee.1068580123157" id="3562712610788163128" nodeInfo="nn" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="3562712610788163129" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="3562712610788163130" nodeInfo="nr">
<node role="returnType" roleId="tpee.1068580123133" type="tpee.VoidType" typeId="tpee.1068581517677" id="1503029986085423" nodeInfo="in" />
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="1503029986085424" nodeInfo="nn" />
<node role="body" roleId="tpee.1068580123135" type="tpee.StatementList" typeId="tpee.1068580123136" id="1503029986085425" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="1503029986085426" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="1503029986085427" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="handler" />
<node role="type" roleId="tpee.5680397130376446158" type="tp68.InternalClassifierType" typeId="tp68.1174914042989" id="3562712610788163131" nodeInfo="in">
<property name="fqClassName" nameId="tp68.1174914081067" value="jetbrains.mps.unification.sandbox.TypeOfHandler" />
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="e2lb.~Object" resolveInfo="Object" />
<node role="type" roleId="tpee.5680397130376446158" type="vgt0.HandlerType" typeId="vgt0.1503029981964506" id="1503029986085428" nodeInfo="ig">
<link role="handler" roleId="vgt0.1503029982163244" targetNodeId="3ypq.7932111957672575234" resolveInfo="typeOf" />
</node>
<node role="initializer" roleId="tpee.1068431790190" type="tp68.InternalNewExpression" typeId="tp68.1173996401517" id="3562712610788163132" nodeInfo="nn">
<property name="fqClassName" nameId="tp68.1173996588177" value="jetbrains.mps.unification.sandbox.TypeOfHandler" />
<node role="actualArgument" roleId="tp68.319021450862590135" type="tpee.VariableReference" typeId="tpee.1068498886296" id="3562712610788163133" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="3562712610788163124" resolveInfo="solver" />
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.Statement" typeId="tpee.1068580123157" id="3562712610788163134" nodeInfo="nn" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.SingleLineComment" typeId="tpee.6329021646629104954" id="3562712610788163135" nodeInfo="nn">
<node role="commentPart" roleId="tpee.6329021646629175155" type="tpee.TextCommentPart" typeId="tpee.6329021646629104957" id="3562712610788163136" nodeInfo="nn">
<property name="text" nameId="tpee.6329021646629104958" value="class Foo { &lt;T&gt; Foo&lt;T&gt; bar(T p1, Bar&lt;T&gt; p2) {} }" />
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.SingleLineComment" typeId="tpee.6329021646629104954" id="3562712610788163137" nodeInfo="nn">
<node role="commentPart" roleId="tpee.6329021646629175155" type="tpee.TextCommentPart" typeId="tpee.6329021646629104957" id="3562712610788163138" nodeInfo="nn">
<property name="text" nameId="tpee.6329021646629104958" value="foo.bar(a, b)" />
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788163139" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tp68.InternalPartialInstanceMethodCall" typeId="tp68.1174294166120" id="3562712610788163140" nodeInfo="nn">
<property name="methodName" nameId="tp68.1174294288199" value="tellTypeOf" />
<node role="actualArgument" roleId="tp68.1174318197094" type="tpee.GenericNewExpression" typeId="tpee.1145552977093" id="1503029981856103" nodeInfo="nn">
<node role="creator" roleId="tpee.1145553007750" type="tpee.ClassCreator" typeId="tpee.1212685548494" id="1503029981856933" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="w2rx.~Logical%d&lt;init&gt;(java%dlang%dObject)" resolveInfo="Logical" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029981858184" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="1" />
<node role="initializer" roleId="tpee.1068431790190" type="tpee.GenericNewExpression" typeId="tpee.1145552977093" id="1503029986085429" nodeInfo="nn">
<node role="creator" roleId="tpee.1145553007750" type="vgt0.HandlerCreator" typeId="vgt0.1503029982035201" id="1503029986085430" nodeInfo="ng">
<link role="handler" roleId="vgt0.1503029982159404" targetNodeId="3ypq.7932111957672575234" resolveInfo="typeOf" />
<node role="solver" roleId="vgt0.1503029984919269" type="tpee.GenericNewExpression" typeId="tpee.1145552977093" id="1503029986085431" nodeInfo="nn">
<node role="creator" roleId="tpee.1145553007750" type="tpee.ClassCreator" typeId="tpee.1212685548494" id="1503029986085432" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="oy3s.5667087533488904329" resolveInfo="UnificationSolverImpl" />
</node>
</node>
</node>
</node>
<node role="actualArgument" roleId="tp68.1174318197094" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="3562712610788163142" nodeInfo="nn">
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="oy3s.5667087533488031231" resolveInfo="TreeLogical" />
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="oy3s.7932111957678327042" resolveInfo="var" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="3562712610788163143" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="zcv.6214965505176452734" resolveInfo="t_string" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="zcv.7932111957675691621" resolveInfo="Forest" />
</node>
</node>
<node role="returnType" roleId="tp68.1174313653259" type="tpee.VoidType" typeId="tpee.1068581517677" id="3562712610788163144" nodeInfo="in" />
<node role="instance" roleId="tp68.1174317636233" type="tpee.VariableReference" typeId="tpee.1068498886296" id="3562712610788163145" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="3562712610788163130" resolveInfo="handler" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788163146" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tp68.InternalPartialInstanceMethodCall" typeId="tp68.1174294166120" id="3562712610788163147" nodeInfo="nn">
<property name="methodName" nameId="tp68.1174294288199" value="tellTypeOf" />
<node role="actualArgument" roleId="tp68.1174318197094" type="tpee.GenericNewExpression" typeId="tpee.1145552977093" id="1503029981860508" nodeInfo="nn">
<node role="creator" roleId="tpee.1145553007750" type="tpee.ClassCreator" typeId="tpee.1212685548494" id="1503029981860509" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="w2rx.~Logical%d&lt;init&gt;(java%dlang%dObject)" resolveInfo="Logical" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029981860510" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="2" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.Statement" typeId="tpee.1068580123157" id="1503029986308160" nodeInfo="nn" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986085434" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986085435" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986085436" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986085427" resolveInfo="handler" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="vgt0.TellConstraintOperation" typeId="vgt0.1503029982882979" id="1503029986085437" nodeInfo="ng">
<link role="constraint" roleId="vgt0.1503029983918490" targetNodeId="3ypq.7932111957672579607" resolveInfo="typeOf" />
<node role="parameter" roleId="vgt0.1503029982813032" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029986770516" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="1" />
</node>
<node role="parameter" roleId="vgt0.1503029982813032" type="5j4j.Ast" typeId="5j4j.7571593955706120730" id="6214965505176452737" nodeInfo="ng">
<node role="root" roleId="5j4j.7571593955706125526" type="5j4j.Node" typeId="5j4j.7571593955706137125" id="3562712610780289477" nodeInfo="ng">
<property name="kind" nameId="5j4j.7166797808989209772" value="CLASSIFIER_TYPE" />
<node role="symbol" roleId="5j4j.7571593955706284553" type="5j4j.Symbol" typeId="5j4j.7571593955706284481" id="3562712610780289482" nodeInfo="ng" />
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="3562712610780289478" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="concept" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3562712610780289479" nodeInfo="ng">
<property name="value" nameId="5j4j.7571593955706137638" value="ClassifierType" />
</node>
</node>
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="3562712610780289480" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="classifier" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3562712610780289481" nodeInfo="ng">
<property name="value" nameId="5j4j.7571593955706137638" value="String" />
</node>
</node>
</node>
</node>
</node>
<node role="actualArgument" roleId="tp68.1174318197094" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="3562712610788163149" nodeInfo="nn">
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="oy3s.5667087533488031231" resolveInfo="TreeLogical" />
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="oy3s.7932111957678327042" resolveInfo="var" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="3562712610788264771" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="zcv.6214965505176464274" resolveInfo="t_Bar_of_string" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="zcv.7932111957675691621" resolveInfo="Forest" />
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986125914" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986125915" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986125916" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986085427" resolveInfo="handler" />
</node>
<node role="returnType" roleId="tp68.1174313653259" type="tpee.VoidType" typeId="tpee.1068581517677" id="3562712610788163151" nodeInfo="in" />
<node role="instance" roleId="tp68.1174317636233" type="tpee.VariableReference" typeId="tpee.1068498886296" id="3562712610788163152" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="3562712610788163130" resolveInfo="handler" />
<node role="operation" roleId="tpee.1197027833540" type="vgt0.TellConstraintOperation" typeId="vgt0.1503029982882979" id="1503029986125917" nodeInfo="ng">
<link role="constraint" roleId="vgt0.1503029983918490" targetNodeId="3ypq.7932111957672579607" resolveInfo="typeOf" />
<node role="parameter" roleId="vgt0.1503029982813032" type="tpee.IntegerConstant" typeId="tpee.1068580320020" id="1503029986771251" nodeInfo="nn">
<property name="value" nameId="tpee.1068580320021" value="2" />
</node>
<node role="parameter" roleId="vgt0.1503029982813032" type="5j4j.Ast" typeId="5j4j.7571593955706120730" id="6214965505176464277" nodeInfo="ng">
<node role="root" roleId="5j4j.7571593955706125526" type="5j4j.Node" typeId="5j4j.7571593955706137125" id="6214965505176464278" nodeInfo="ng">
<property name="kind" nameId="5j4j.7166797808989209772" value="CLASSIFIER_TYPE" />
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ChildRole" typeId="5j4j.7571593955706137263" id="3608339284319961277" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="parameter" />
<property name="cardinality" nameId="5j4j.7571593955706137428" value="multiple" />
<node role="contents" roleId="5j4j.7571593955706137319" type="5j4j.Node" typeId="5j4j.7571593955706137125" id="3936021239966049826" nodeInfo="ng">
<node role="symbol" roleId="5j4j.7571593955706284553" type="5j4j.Symbol" typeId="5j4j.7571593955706284481" id="3936021239966049832" nodeInfo="ng" />
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="3936021239966049827" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="concept" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3936021239966049828" nodeInfo="ng">
<property name="value" nameId="5j4j.7571593955706137638" value="ClassifierType" />
</node>
</node>
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="3936021239966049829" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="classifier" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3936021239966049830" nodeInfo="ng">
<property name="value" nameId="5j4j.7571593955706137638" value="String" />
</node>
</node>
</node>
</node>
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="6214965505176464280" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="concept" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="6214965505176464281" nodeInfo="ng">
<property name="value" nameId="5j4j.7571593955706137638" value="ClassifierType" />
</node>
</node>
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="7825160518170266129" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="classifier" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3608339284319392912" nodeInfo="ng">
<property name="value" nameId="5j4j.7571593955706137638" value="Bar" />
</node>
</node>
<node role="symbol" roleId="5j4j.7571593955706284553" type="5j4j.Symbol" typeId="5j4j.7571593955706284481" id="6214965505176464279" nodeInfo="ng" />
</node>
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.Statement" typeId="tpee.1068580123157" id="3562712610788163153" nodeInfo="nn" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="3562712610788163154" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="3562712610788163155" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="cnsts" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="3562712610788163156" nodeInfo="in">
<node role="statement" roleId="tpee.1068581517665" type="tpee.Statement" typeId="tpee.1068580123157" id="1503029986085440" nodeInfo="nn" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.LocalVariableDeclarationStatement" typeId="tpee.1068581242864" id="1503029986135417" nodeInfo="nn">
<node role="localVariableDeclaration" roleId="tpee.1068581242865" type="tpee.LocalVariableDeclaration" typeId="tpee.1068581242863" id="1503029986135418" nodeInfo="nr">
<property name="name" nameId="tpck.1169194664001" value="allTypeOf" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="1503029986135411" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="k7g3.~Collection" resolveInfo="Collection" />
<node role="parameter" roleId="tpee.1109201940907" type="tp68.InternalClassifierType" typeId="tp68.1174914042989" id="3562712610788163157" nodeInfo="in">
<property name="fqClassName" nameId="tp68.1174914081067" value="jetbrains.mps.unification.sandbox.TypeOfHandler.TypeOfConstraint" />
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="e2lb.~Object" resolveInfo="Object" />
</node>
<node role="parameter" roleId="tpee.1109201940907" type="tpee.WildCardType" typeId="tpee.1171903607971" id="1503029986135414" nodeInfo="in" />
</node>
<node role="initializer" roleId="tpee.1068431790190" type="tp68.InternalPartialInstanceMethodCall" typeId="tp68.1174294166120" id="3562712610788163158" nodeInfo="nn">
<property name="methodName" nameId="tp68.1174294288199" value="getTypeOfConstraints" />
<node role="returnType" roleId="tp68.1174313653259" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="3562712610788163159" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="k7g3.~Collection" resolveInfo="Collection" />
<node role="parameter" roleId="tpee.1109201940907" type="tp68.InternalClassifierType" typeId="tp68.1174914042989" id="3562712610788163160" nodeInfo="in">
<property name="fqClassName" nameId="tp68.1174914081067" value="jetbrains.mps.unification.sandbox.TypeOfHandler.TypeOfConstraint" />
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="e2lb.~Object" resolveInfo="Object" />
</node>
<node role="initializer" roleId="tpee.1068431790190" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986135419" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986135420" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986085427" resolveInfo="handler" />
</node>
<node role="instance" roleId="tp68.1174317636233" type="tpee.VariableReference" typeId="tpee.1068498886296" id="3562712610788163161" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="3562712610788163130" resolveInfo="handler" />
<node role="operation" roleId="tpee.1197027833540" type="vgt0.AllConstraintsOperation" typeId="vgt0.1503029983867083" id="1503029986135421" nodeInfo="ng">
<link role="constraint" roleId="vgt0.1503029983918490" targetNodeId="3ypq.7932111957672579607" resolveInfo="typeOf" />
</node>
</node>
</node>
</node>
<node role="statement" roleId="tpee.1068581517665" type="tpee.Statement" typeId="tpee.1068580123157" id="3562712610788163162" nodeInfo="nn" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788163163" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788163164" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.StaticFieldReference" typeId="tpee.1070533707846" id="3562712610788163165" nodeInfo="nn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.Statement" typeId="tpee.1068580123157" id="1503029986131543" nodeInfo="nn" />
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1503029986133320" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1503029986133316" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.StaticFieldReference" typeId="tpee.1070533707846" id="1503029986133317" nodeInfo="nn">
<link role="classifier" roleId="tpee.1144433057691" targetNodeId="e2lb.~System" resolveInfo="System" />
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="e2lb.~System%dout" resolveInfo="out" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="3562712610788163166" nodeInfo="nn">
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="1503029986133318" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="fxg7.~PrintStream%dprintln(java%dlang%dString)%cvoid" resolveInfo="println" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="3562712610788163167" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.VariableReference" typeId="tpee.1068498886296" id="3562712610788163168" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="3562712610788163155" resolveInfo="cnsts" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="1503029986139919" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.VariableReference" typeId="tpee.1068498886296" id="1503029986140138" nodeInfo="nn">
<link role="variableDeclaration" roleId="tpee.1068581517664" targetNodeId="1503029986135418" resolveInfo="allTypeOf" />
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="3562712610788163169" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="1503029986133319" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="&gt; " />
</node>
</node>
@ -165,7 +170,8 @@
</node>
</node>
</node>
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="3562712610788163170" nodeInfo="nn" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="1503029986085445" nodeInfo="ngu" />
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="1503029986085446" nodeInfo="nn" />
</root>
</model>