Extracting trees from the JCHR text to external class, using Ast instances directly in rules

This commit is contained in:
Fedor Isakov 2014-08-02 16:45:49 +02:00
parent 5d9cc3de0c
commit 7bee35a4ad
7 changed files with 374 additions and 39 deletions

View File

@ -569,6 +569,15 @@
<property name="separatorText" nameId="tpc2.1140524450557" value="," />
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="vgt0.7932111957674154703" />
<node role="cellLayout" roleId="tpc2.1140524464360" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="7932111957674547475" nodeInfo="nn" />
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.IndentLayoutWrapAnchorStyleClassItem" typeId="tpc2.7667708318090877006" id="3562712610789502539" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.IndentLayoutIndentStyleClassItem" typeId="tpc2.1237307900041" id="3562712610789471676" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.IndentLayoutIndentAnchorStyleClassItem" typeId="tpc2.7667708318090725848" id="3562712610789419391" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="7932111957674223024" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value=")" />

View File

@ -55,6 +55,9 @@
<property name="sourceCardinality" nameId="tpce.1071599893252" value="1" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="456733934405496212" resolveInfo="ConstraintDeclaration" />
</node>
<node role="implements" roleId="tpce.1169129564478" type="tpce.InterfaceConceptReference" typeId="tpce.1169127622168" id="3562712610788606190" nodeInfo="ig">
<link role="intfc" roleId="tpce.1169127628841" targetNodeId="3562712610788604202" resolveInfo="IPredicate" />
</node>
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="456733934405447580" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Rule" />
@ -196,6 +199,9 @@
<property name="sourceCardinality" nameId="tpce.1071599893252" value="1" />
<link role="target" roleId="tpce.1071599976176" targetNodeId="7932111957672597360" resolveInfo="SolverDeclaration" />
</node>
<node role="implements" roleId="tpce.1169129564478" type="tpce.InterfaceConceptReference" typeId="tpce.1169127622168" id="3562712610788606397" nodeInfo="ig">
<link role="intfc" roleId="tpce.1169127628841" targetNodeId="3562712610788604202" resolveInfo="IPredicate" />
</node>
</root>
<root type="tpce.ConceptDeclaration" typeId="tpce.1071489090640" id="7932111957678809936" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="LocalDeclaration" />
@ -213,5 +219,8 @@
<link role="target" roleId="tpce.1071599976176" targetNodeId="456733934405450312" resolveInfo="LogicVariable" />
</node>
</root>
<root type="tpce.InterfaceConceptDeclaration" typeId="tpce.1169125989551" id="3562712610788604202" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="IPredicate" />
</root>
</model>

View File

@ -5,40 +5,131 @@
<language namespace="b401a680-8325-4110-8fd3-84331ff25bef(jetbrains.mps.lang.generator)" />
<language namespace="d7706f63-9be2-479c-a3da-ae92af1e64d5(jetbrains.mps.lang.generator.generationContext)" />
<language namespace="35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)" />
<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="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="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">
<property name="name" nameId="tpck.1169194664001" value="main" />
<node role="mappingLabel" roleId="tpf8.1200911492601" type="tpf8.MappingLabelDeclaration" typeId="tpf8.1200911316486" id="3562712610788705323" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="Handler_AstHelper" />
<link role="sourceConcept" roleId="tpf8.1200911342686" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
<link role="targetConcept" roleId="tpf8.1200913004646" targetNodeId="tpee.1068390468198" resolveInfo="ClassConcept" />
</node>
<node role="mappingLabel" roleId="tpf8.1200911492601" type="tpf8.MappingLabelDeclaration" typeId="tpf8.1200911316486" id="3562712610788770705" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="Ast_Method" />
<link role="sourceConcept" roleId="tpf8.1200911342686" targetNodeId="5j4j.7571593955706120730" resolveInfo="Ast" />
<link role="targetConcept" roleId="tpf8.1200913004646" targetNodeId="tpee.1081236700938" resolveInfo="StaticMethodDeclaration" />
</node>
<node role="rootMappingRule" roleId="tpf8.1167514678247" type="tpf8.Root_MappingRule" typeId="tpf8.1167514355419" id="3562712610788659967" nodeInfo="ng">
<property name="keepSourceRoot" nameId="tpf8.1177959072138" value="true" />
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
<link role="template" roleId="tpf8.1167514355421" targetNodeId="3562712610788642008" resolveInfo="Forest" />
<link role="labelDeclaration" roleId="tpf8.1200917515464" targetNodeId="3562712610788705323" resolveInfo="Handler_AstHelper" />
</node>
<node role="reductionMappingRule" roleId="tpf8.1167328349397" type="tpf8.Reduction_MappingRule" typeId="tpf8.1167327847730" id="1611448358168254930" nodeInfo="ng">
<link role="applicableConcept" roleId="tpf8.1167169349424" targetNodeId="5j4j.7571593955706120730" resolveInfo="Ast" />
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="1611448358168261544" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="1611448358168267494" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="ie8e.6626732309150638723" resolveInfo="tree" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="ie8e.6626732309150452506" resolveInfo="Builder" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="1611448358168267531" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="1611448358168268480" nodeInfo="nn">
<node role="sourceNodeQuery" roleId="tpf8.1168024447342" type="tpf8.SourceSubstituteMacro_SourceNodeQuery" typeId="tpf8.1168024337012" id="1611448358168268481" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="1611448358168268482" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="1611448358168268488" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="1611448358168268483" nodeInfo="nn">
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="1611448358168268486" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="5j4j.7571593955706125526" />
</node>
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="1611448358168268487" nodeInfo="nn" />
<node role="ruleConsequence" roleId="tpf8.1169672767469" type="tpf8.InlineSwitch_RuleConsequence" typeId="tpf8.1195158154974" id="3562712610788610832" nodeInfo="ng">
<node role="case" roleId="tpf8.1195158408710" type="tpf8.InlineSwitch_Case" typeId="tpf8.1195158388553" id="3562712610788611187" nodeInfo="ng">
<node role="conditionFunction" roleId="tpf8.1195158608805" type="tpf8.BaseMappingRule_Condition" typeId="tpf8.1167168920554" id="3562712610788611188" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788611189" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788612192" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788614949" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788612483" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610788612191" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetParentOperation" typeId="tp25.1139613262185" id="3562712610788613615" nodeInfo="nn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_IsInstanceOfOperation" typeId="tp25.1139621453865" id="3562712610788616076" nodeInfo="nn">
<node role="conceptArgument" roleId="tp25.1177027386292" type="tp25.RefConcept_Reference" typeId="tp25.1177026924588" id="3562712610788635568" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1177026940964" targetNodeId="vgt0.3562712610788604202" resolveInfo="IPredicate" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="caseConsequence" roleId="tpf8.1195158637244" type="tpf8.InlineTemplate_RuleConsequence" typeId="tpf8.1177093525992" id="3562712610788638844" nodeInfo="ng">
<node role="templateNode" roleId="tpf8.1177093586806" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="3562712610789035906" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="3562712610788687307" resolveInfo="tree" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="3562712610788642008" resolveInfo="Forest" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="3562712610789036165" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcListMacro" typeId="tpf8.1114729360583" id="3562712610789044956" nodeInfo="nn">
<node role="sourceNodesQuery" roleId="tpf8.1168278589236" type="tpf8.SourceSubstituteMacro_SourceNodesQuery" typeId="tpf8.1167951910403" id="3562712610789044958" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610789044960" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610789046254" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610789046562" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610789046253" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetDescendantsOperation" typeId="tp25.1171305280644" id="3562712610789048452" nodeInfo="nn">
<node role="parameter" roleId="tp25.1144104376918" type="tp25.OperationParm_Concept" typeId="tp25.1144101972840" id="3562712610789048454" nodeInfo="ng">
<node role="conceptArgument" roleId="tp25.1207343664468" type="tp25.RefConcept_Reference" typeId="tp25.1177026924588" id="3562712610789049417" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1177026940964" targetNodeId="vgt0.456733934405450312" resolveInfo="LogicVariable" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.ReferenceMacro" typeId="tpf8.1088761943574" id="3562712610789036478" nodeInfo="nn">
<property name="linkRole" nameId="tpck.1757699476691236116" value="classConcept" />
<node role="referentFunction" roleId="tpf8.1167770376702" type="tpf8.ReferenceMacro_GetReferent" typeId="tpf8.1167770111131" id="3562712610789036479" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610789036480" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610789037036" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610789037183" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="3562712610789037035" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_GetOutputByLabelAndInput" typeId="tpf3.1216860049627" id="3562712610789038109" nodeInfo="nn">
<link role="label" roleId="tpf3.1216860049628" targetNodeId="3562712610788705323" resolveInfo="Handler_AstHelper" />
<node role="inputNode" roleId="tpf3.1216860049632" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610789038935" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610789038755" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetAncestorOperation" typeId="tp25.1171407110247" id="3562712610789040327" nodeInfo="nn">
<node role="parameter" roleId="tp25.1144104376918" type="tp25.OperationParm_Concept" typeId="tp25.1144101972840" id="3562712610789040329" nodeInfo="ng">
<node role="conceptArgument" roleId="tp25.1207343664468" type="tp25.RefConcept_Reference" typeId="tp25.1177026924588" id="3562712610789040632" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1177026940964" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.ReferenceMacro" typeId="tpf8.1088761943574" id="3562712610789041334" nodeInfo="nn">
<property name="linkRole" nameId="tpck.1757699476691236116" value="baseMethodDeclaration" />
<node role="referentFunction" roleId="tpf8.1167770376702" type="tpf8.ReferenceMacro_GetReferent" typeId="tpf8.1167770111131" id="3562712610789041335" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610789041336" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610789042042" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610789042189" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf3.TemplateFunctionParameter_generationContext" typeId="tpf3.1216860049635" id="3562712610789042041" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpf3.GenerationContextOp_GetOutputByLabelAndInput" typeId="tpf3.1216860049627" id="3562712610789042899" nodeInfo="nn">
<link role="label" roleId="tpf3.1216860049628" targetNodeId="3562712610788770705" resolveInfo="Ast_Method" />
<node role="inputNode" roleId="tpf3.1216860049632" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610789043383" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="defaultConsequence" roleId="tpf8.1195158241124" type="tpf8.TemplateDeclarationReference" typeId="tpf8.1168559333462" id="3562712610789159133" nodeInfo="nn">
<link role="template" roleId="tpf8.1722980698497626483" targetNodeId="3562712610789138197" resolveInfo="Ast_Builder" />
</node>
</node>
</node>
@ -598,5 +689,186 @@
</node>
</node>
</root>
<root type="tpee.ClassConcept" typeId="tpee.1068390468198" id="3562712610788642008" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="Forest" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="3562712610788685909" nodeInfo="ngu" />
<node role="member" roleId="tpee.5375687026011219971" type="tpee.StaticMethodDeclaration" typeId="tpee.1081236700938" id="3562712610788687307" nodeInfo="igu">
<property name="name" nameId="tpck.1169194664001" value="tree" />
<node role="parameter" roleId="tpee.1068580123134" type="tpee.ParameterDeclaration" typeId="tpee.1068498886292" id="3562712610788688769" nodeInfo="ir">
<property name="name" nameId="tpck.1169194664001" value="param" />
<node role="type" roleId="tpee.5680397130376446158" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="3562712610788689171" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="e2lb.~Object" resolveInfo="Object" />
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="3562712610788933582" nodeInfo="nn">
<node role="sourceNodeQuery" roleId="tpf8.1168024447342" type="tpf8.SourceSubstituteMacro_SourceNodeQuery" typeId="tpf8.1168024337012" id="3562712610788935330" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788935331" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788936413" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788944446" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610788936412" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tpd4.Node_TypeOperation" typeId="tpd4.1176544042499" id="3562712610788956955" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.LoopMacro" typeId="tpf8.1118786554307" id="3562712610788861182" nodeInfo="nn">
<node role="sourceNodesQuery" roleId="tpf8.1167952069335" type="tpf8.SourceSubstituteMacro_SourceNodesQuery" typeId="tpf8.1167951910403" id="3562712610788861184" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788861186" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788862595" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788862931" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610788862594" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetDescendantsOperation" typeId="tp25.1171305280644" id="3562712610788868251" nodeInfo="nn">
<node role="parameter" roleId="tp25.1144104376918" type="tp25.OperationParm_Concept" typeId="tp25.1144101972840" id="3562712610788868253" nodeInfo="ng">
<node role="conceptArgument" roleId="tp25.1207343664468" type="tp25.RefConcept_Reference" typeId="tp25.1177026924588" id="3562712610788869507" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1177026940964" targetNodeId="vgt0.456733934405450312" resolveInfo="LogicVariable" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.PropertyMacro" typeId="tpf8.1087833241328" id="3562712610788961946" nodeInfo="nn">
<property name="propertyName" nameId="tpck.1757699476691236117" value="name" />
<node role="propertyValueFunction" roleId="tpf8.1167756362303" type="tpf8.PropertyMacro_GetPropertyValue" typeId="tpf8.1167756080639" id="3562712610788961947" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788961948" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788964292" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788964639" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610788964291" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="3562712610788967616" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="returnType" roleId="tpee.1068580123133" type="tpee.ClassifierType" typeId="tpee.1107535904670" id="3562712610788975047" nodeInfo="in">
<link role="classifier" roleId="tpee.1107535924139" targetNodeId="ie8e.2915549616871035972" resolveInfo="Tree" />
</node>
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="3562712610788687310" nodeInfo="nn" />
<node role="body" roleId="tpee.1068580123135" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788687311" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788969715" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="5j4j.Ast" typeId="5j4j.7571593955706120730" id="3562712610788969709" nodeInfo="ng">
<node role="root" roleId="5j4j.7571593955706125526" type="5j4j.Node" typeId="5j4j.7571593955706137125" id="3562712610788969711" nodeInfo="ng">
<node role="symbol" roleId="5j4j.7571593955706284553" type="5j4j.Symbol" typeId="5j4j.7571593955706284481" id="3562712610788969713" nodeInfo="ng" />
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.IncludeMacro" typeId="tpf8.1194565793557" id="3562712610789165965" nodeInfo="nn">
<link role="includeTemplate" roleId="tpf8.1194566366375" targetNodeId="3562712610789138197" resolveInfo="Ast_Builder" />
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.LoopMacro" typeId="tpf8.1118786554307" id="3562712610788803914" nodeInfo="nn">
<link role="mappingLabel" roleId="tpf8.1200912223215" targetNodeId="3562712610788770705" resolveInfo="Ast_Method" />
<node role="sourceNodesQuery" roleId="tpf8.1167952069335" type="tpf8.SourceSubstituteMacro_SourceNodesQuery" typeId="tpf8.1167951910403" id="3562712610788803916" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788803918" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788804768" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788805565" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610788804767" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.Node_GetDescendantsOperation" typeId="tp25.1171305280644" id="3562712610788811261" nodeInfo="nn">
<node role="parameter" roleId="tp25.1144104376918" type="tp25.OperationParm_Concept" typeId="tp25.1144101972840" id="3562712610788811263" nodeInfo="ng">
<node role="conceptArgument" roleId="tp25.1207343664468" type="tp25.RefConcept_Reference" typeId="tp25.1177026924588" id="3562712610788812064" nodeInfo="nn">
<link role="conceptDeclaration" roleId="tp25.1177026940964" targetNodeId="5j4j.7571593955706120730" resolveInfo="Ast" />
</node>
</node>
<node role="parameter" roleId="tp25.1144104376918" type="tp25.OperationParm_StopConceptList" typeId="tp25.1803469493727536395" id="3562712610788813812" nodeInfo="ng">
<node role="concept" roleId="tp25.1803469493727536396" type="tp25.ConceptReference" typeId="tp25.1154546950173" id="3562712610788814924" nodeInfo="ng">
<link role="concept" roleId="tp25.1154546997487" targetNodeId="5j4j.7571593955706137125" resolveInfo="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.PropertyMacro" typeId="tpf8.1087833241328" id="3562712610788821209" nodeInfo="nn">
<property name="propertyName" nameId="tpck.1757699476691236117" value="name" />
<node role="propertyValueFunction" roleId="tpf8.1167756362303" type="tpf8.PropertyMacro_GetPropertyValue" typeId="tpf8.1167756080639" id="3562712610788821210" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788821211" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788823035" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="3562712610788827003" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788842716" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788839110" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tp25.SemanticDowncastExpression" typeId="tp25.1145404486709" id="3562712610788837918" nodeInfo="nn">
<node role="leftExpression" roleId="tp25.1145404616321" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610788828071" nodeInfo="nn" />
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="3562712610788841366" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="ec5l.~SNode%dgetNodeId()%corg%djetbrains%dmps%dopenapi%dmodel%dSNodeId" resolveInfo="getNodeId" />
</node>
</node>
<node role="operation" roleId="tpee.1197027833540" type="tpee.InstanceMethodCallOperation" typeId="tpee.1202948039474" id="3562712610788848823" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="e2lb.~Object%dtoString()%cjava%dlang%dString" resolveInfo="toString" />
</node>
</node>
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="3562712610788824165" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpf8.TemplateFunctionParameter_templatePropertyValue" typeId="tpf8.1167756221419" id="3562712610788823034" nodeInfo="nn" />
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="3562712610788824170" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="_" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node role="member" roleId="tpee.5375687026011219971" type="tpee.PlaceholderMember" typeId="tpee.1465982738277781862" id="3562712610788696487" nodeInfo="ngu" />
<node role="visibility" roleId="tpee.1178549979242" type="tpee.PublicVisibility" typeId="tpee.1146644602865" id="3562712610788642009" nodeInfo="nn" />
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.RootTemplateAnnotation" typeId="tpf8.1168619357332" id="3562712610788642010" nodeInfo="ng">
<link role="applicableConcept" roleId="tpf8.1168619429071" targetNodeId="vgt0.456733934405394951" resolveInfo="Handler" />
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.PropertyMacro" typeId="tpf8.1087833241328" id="3562712610788642947" nodeInfo="nn">
<property name="propertyName" nameId="tpck.1757699476691236117" value="name" />
<node role="propertyValueFunction" roleId="tpf8.1167756362303" type="tpf8.PropertyMacro_GetPropertyValue" typeId="tpf8.1167756080639" id="3562712610788642948" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610788642949" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610788644113" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="3562712610789014443" nodeInfo="nn">
<node role="rightExpression" roleId="tpee.1081773367579" type="tpf8.TemplateFunctionParameter_templatePropertyValue" typeId="tpf8.1167756221419" id="3562712610789015871" nodeInfo="nn" />
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.PlusExpression" typeId="tpee.1068581242875" id="3562712610789010176" nodeInfo="nn">
<node role="leftExpression" roleId="tpee.1081773367580" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610788651341" nodeInfo="nn">
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610788650500" nodeInfo="nn" />
<node role="operation" roleId="tpee.1197027833540" type="tp25.SPropertyAccess" typeId="tp25.1138056022639" id="3562712610788654523" nodeInfo="nn">
<link role="property" roleId="tp25.1138056395725" targetNodeId="tpck.1169194664001" resolveInfo="name" />
</node>
</node>
<node role="rightExpression" roleId="tpee.1081773367579" type="tpee.StringLiteral" typeId="tpee.1070475926800" id="3562712610789010906" nodeInfo="nn">
<property name="value" nameId="tpee.1070475926801" value="_" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</root>
<root type="tpf8.TemplateDeclaration" typeId="tpf8.1092059087312" id="3562712610789138197" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="Ast_Builder" />
<link role="applicableConcept" roleId="tpf8.1168285871518" targetNodeId="5j4j.7571593955706120730" resolveInfo="Ast" />
<node role="contentNode" roleId="tpf8.1092060348987" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="3562712610789143692" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="ie8e.6626732309150638723" resolveInfo="tree" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="ie8e.6626732309150452506" resolveInfo="Builder" />
<node role="actualArgument" roleId="tpee.1068499141038" type="tpee.NullLiteral" typeId="tpee.1070534058343" id="3562712610789143693" nodeInfo="nn">
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.CopySrcNodeMacro" typeId="tpf8.1114706874351" id="3562712610789143694" nodeInfo="nn">
<node role="sourceNodeQuery" roleId="tpf8.1168024447342" type="tpf8.SourceSubstituteMacro_SourceNodeQuery" typeId="tpf8.1168024337012" id="3562712610789143695" nodeInfo="nn">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="3562712610789143696" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="3562712610789143697" nodeInfo="nn">
<node role="expression" roleId="tpee.1068580123156" type="tpee.DotExpression" typeId="tpee.1197027756228" id="3562712610789143698" nodeInfo="nn">
<node role="operation" roleId="tpee.1197027833540" type="tp25.SLinkAccess" typeId="tp25.1138056143562" id="3562712610789143699" nodeInfo="nn">
<link role="link" roleId="tp25.1138056516764" targetNodeId="5j4j.7571593955706125526" />
</node>
<node role="operand" roleId="tpee.1197027771414" type="tpf8.TemplateFunctionParameter_sourceNode" typeId="tpf8.1167169188348" id="3562712610789143700" nodeInfo="nn" />
</node>
</node>
</node>
</node>
</node>
</node>
<node role="smodelAttribute" roleId="tpck.5169995583184591170" type="tpf8.TemplateFragment" typeId="tpf8.1095672379244" id="3562712610789153458" nodeInfo="ng" />
</node>
</root>
</model>

View File

@ -16,11 +16,13 @@
<external-templates />
<dependencies>
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
<dependency reexport="false">894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)</dependency>
<dependency reexport="false">7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.unification.tree)</dependency>
</dependencies>
<usedLanguages>
<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>
<usedLanguage>35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)</usedLanguage>
</usedLanguages>
<usedDevKits>
@ -33,6 +35,8 @@
<dependencies>
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
<dependency reexport="false">6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)</dependency>
<dependency reexport="false">1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)</dependency>
<dependency reexport="false">8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)</dependency>
<dependency reexport="false">7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.unification.tree)</dependency>
</dependencies>
<usedLanguages>

View File

@ -7,6 +7,13 @@
<import index="5j4j" modelUID="r:c8fb1c5e-8204-4904-a38f-678899d447c1(jetbrains.mps.logic.structure)" version="-1" />
<import index="t6w" modelUID="f:java_stub#6ed54515-acc8-4d1e-a16c-9fd6cfe951ea#jetbrains.mps.lang.smodel.generator.smodelAdapter(MPS.Core/jetbrains.mps.lang.smodel.generator.smodelAdapter@java_stub)" version="-1" />
<import index="tpen" modelUID="r:00000000-0000-4000-0000-011c895902c3(jetbrains.mps.baseLanguage.editor)" 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="9a8" modelUID="f:java_stub#1ed103c3-3aa6-49b7-9c21-6765ee11f224#jetbrains.mps.nodeEditor(MPS.Editor/jetbrains.mps.nodeEditor@java_stub)" version="-1" />
<import index="jsgz" modelUID="f:java_stub#1ed103c3-3aa6-49b7-9c21-6765ee11f224#jetbrains.mps.nodeEditor.cells(MPS.Editor/jetbrains.mps.nodeEditor.cells@java_stub)" version="-1" />
<import index="ejnv" modelUID="f:java_stub#1ed103c3-3aa6-49b7-9c21-6765ee11f224#jetbrains.mps.editor.runtime.style(MPS.Editor/jetbrains.mps.editor.runtime.style@java_stub)" version="-1" />
<import index="nu8v" modelUID="f:java_stub#1ed103c3-3aa6-49b7-9c21-6765ee11f224#jetbrains.mps.openapi.editor.cells(MPS.Editor/jetbrains.mps.openapi.editor.cells@java_stub)" version="-1" />
<import index="srng" modelUID="f:java_stub#1ed103c3-3aa6-49b7-9c21-6765ee11f224#jetbrains.mps.openapi.editor(MPS.Editor/jetbrains.mps.openapi.editor@java_stub)" version="-1" />
<import index="mceb" modelUID="f:java_stub#1ed103c3-3aa6-49b7-9c21-6765ee11f224#jetbrains.mps.nodeEditor.style(MPS.Editor/jetbrains.mps.nodeEditor.style@java_stub)" version="-1" />
<import index="tpc2" modelUID="r:00000000-0000-4000-0000-011c8959029e(jetbrains.mps.lang.editor.structure)" version="35" implicit="yes" />
<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" />
@ -19,19 +26,14 @@
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="1611448358167895238" nodeInfo="ng">
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="5j4j.7571593955706120730" resolveInfo="Ast" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="1611448358167923142" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="7166797808989955352" nodeInfo="nn">
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.SelectableStyleSheetItem" typeId="tpc2.1186414928363" id="7166797808989955354" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="false" />
</node>
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.IndentLayoutIndentAnchorStyleClassItem" typeId="tpc2.7667708318090725848" id="7166797808989957974" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNode" typeId="tpc2.1073389882823" id="1611448358167923149" nodeInfo="ng">
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="5j4j.7571593955706125526" />
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="7166797808989955357" nodeInfo="nn" />
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="3562712610790859261" nodeInfo="nn" />
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_RefNode" typeId="tpc2.1073389882823" id="1611448358167923149" nodeInfo="ng">
<link role="relationDeclaration" roleId="tpc2.1140103550593" targetNodeId="5j4j.7571593955706125526" />
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Horizontal" typeId="tpc2.1106270549637" id="7166797808989958489" nodeInfo="nn" />
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="3562712610790862491" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="" />
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="3562712610789533965" nodeInfo="nn" />
<node role="addHints" roleId="tpc2.4242538589862653897" type="tpc2.QueryHintsSpecification" typeId="tpc2.6150987479542522273" id="7166797808986563326" nodeInfo="ng">
<node role="body" roleId="tpee.1137022507850" type="tpee.StatementList" typeId="tpee.1068580123136" id="7166797808986563327" nodeInfo="sn">
<node role="statement" roleId="tpee.1068581517665" type="tpee.ExpressionStatement" typeId="tpee.1068580123155" id="7166797808986569258" nodeInfo="nn">
@ -54,6 +56,12 @@
<property name="value" nameId="tpc2.1225456424731" value="339933" />
</node>
</node>
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.IndentLayoutIndentAnchorStyleClassItem" typeId="tpc2.7667708318090725848" id="7166797808989957974" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
<node role="styleItem" roleId="tpc2.1219418656006" type="tpc2.IndentLayoutWrapAnchorStyleClassItem" typeId="tpc2.7667708318090877006" id="3562712610789350040" nodeInfo="nn">
<property name="flag" nameId="tpc2.1186414551515" value="true" />
</node>
</node>
</root>
<root type="tpc2.ConceptEditorDeclaration" typeId="tpc2.1071666914219" id="1611448358168152146" nodeInfo="ng">
@ -327,10 +335,6 @@
<property name="virtualPackage" nameId="tpck.1193676396447" value="node" />
<link role="conceptDeclaration" roleId="tpc2.1166049300910" targetNodeId="5j4j.7932111957678624766" resolveInfo="NodeVariableExpression" />
<node role="cellModel" roleId="tpc2.1080736633877" type="tpc2.CellModel_Collection" typeId="tpc2.1073389446423" id="7932111957678626266" nodeInfo="nn">
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="7166797808988632086" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="(" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.8171260302110651849" resolveInfo="LeftAngleBracket" />
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="7932111957678626381" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value="`" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.8171260302110651860" resolveInfo="AnyBracket" />
@ -372,10 +376,6 @@
</node>
</node>
</node>
<node role="childCellModel" roleId="tpc2.1073389446424" type="tpc2.CellModel_Constant" typeId="tpc2.1073389577006" id="7166797808988633808" nodeInfo="nn">
<property name="text" nameId="tpc2.1073389577007" value=")" />
<link role="parentStyleClass" roleId="tpc2.1381004262292426837" targetNodeId="tpen.8171260302110651850" resolveInfo="RightAngleBracket" />
</node>
<node role="cellLayout" roleId="tpc2.1106270802874" type="tpc2.CellLayout_Indent" typeId="tpc2.1237303669825" id="7932111957678626269" nodeInfo="nn" />
</node>
</root>

View File

@ -13,6 +13,7 @@
<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="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" />
<root type="vgt0.Handler" typeId="vgt0.456733934405394951" id="7932111957672575234" nodeInfo="ig">
<property name="name" nameId="tpck.1169194664001" value="typeOf" />
<node role="rule" roleId="vgt0.456733934405773365" type="vgt0.SimplificationRule" typeId="vgt0.456733934405449669" id="7932111957672584569" nodeInfo="ng">
@ -53,11 +54,32 @@
<node role="argument" roleId="vgt0.7932111957674154703" type="vgt0.LogicVariable" typeId="vgt0.456733934405450312" id="6214965505176483045" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="Y" />
</node>
<node role="argument" roleId="vgt0.7932111957674154703" type="tpee.StaticMethodCall" typeId="tpee.1081236700937" id="6214965505176483543" nodeInfo="nn">
<link role="baseMethodDeclaration" roleId="tpee.1068499141037" targetNodeId="zcv.6214965505176479767" resolveInfo="t_Bar_of_T" />
<link role="classConcept" roleId="tpee.1144433194310" targetNodeId="zcv.7932111957675691621" resolveInfo="Forest" />
<node role="actualArgument" roleId="tpee.1068499141038" type="vgt0.LogicVariable" typeId="vgt0.456733934405450312" id="6214965505176483544" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="T" />
<node role="argument" roleId="vgt0.7932111957674154703" type="5j4j.Ast" typeId="5j4j.7571593955706120730" id="3562712610788578353" nodeInfo="ng">
<node role="root" roleId="5j4j.7571593955706125526" type="5j4j.Node" typeId="5j4j.7571593955706137125" id="3562712610788578355" nodeInfo="ng">
<property name="kind" nameId="5j4j.7166797808989209772" value="CLASSIFIER_TYPE" />
<node role="symbol" roleId="5j4j.7571593955706284553" type="5j4j.Symbol" typeId="5j4j.7571593955706284481" id="3562712610788578357" nodeInfo="ng" />
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="3562712610789186379" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="concept" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3562712610789186380" 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="3562712610788580030" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="classifier" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3562712610788580031" nodeInfo="ng">
<property name="value" nameId="5j4j.7571593955706137638" value="Bar" />
</node>
</node>
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ChildRole" typeId="5j4j.7571593955706137263" id="3562712610788580154" 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.NodeVariableExpression" typeId="5j4j.7932111957678624766" id="3562712610788580538" nodeInfo="ng">
<node role="expression" roleId="5j4j.7932111957678625620" type="vgt0.LogicVariable" typeId="vgt0.456733934405450312" id="3562712610788581261" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="T" />
</node>
<node role="symbol" roleId="5j4j.7571593955706284553" type="5j4j.Symbol" typeId="5j4j.7571593955706284481" id="3562712610788580540" nodeInfo="ng" />
</node>
</node>
</node>
</node>
</node>

View File

@ -75,6 +75,25 @@
<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="3562712610780287798" nodeInfo="ng">
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ChildRole" typeId="5j4j.7571593955706137263" id="3562712610789412411" 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="3562712610789412808" nodeInfo="ng">
<node role="symbol" roleId="5j4j.7571593955706284553" type="5j4j.Symbol" typeId="5j4j.7571593955706284481" id="3562712610789412813" nodeInfo="ng" />
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="3562712610789412809" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="concept" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3562712610789412810" 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="3562712610789412811" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="classifier" />
<node role="contents" roleId="5j4j.7571593955706137672" type="5j4j.ValueHolder" typeId="5j4j.7571593955706137573" id="3562712610789412812" nodeInfo="ng">
<property name="value" nameId="5j4j.7571593955706137638" value="Foo" />
</node>
</node>
</node>
</node>
<node role="symbol" roleId="5j4j.7571593955706284553" type="5j4j.Symbol" typeId="5j4j.7571593955706284481" id="3562712610780287803" nodeInfo="ng" />
<node role="role" roleId="5j4j.7571593955706284441" type="5j4j.ValueRole" typeId="5j4j.7571593955706137472" id="3562712610780287799" nodeInfo="ng">
<property name="name" nameId="tpck.1169194664001" value="concept" />