Refactor ProgramProducer to use query templates.

Switch to using queries to launch program stages.
Refactor typesystem2 lang and runtime to break queries into stages.
Rename ChrProgram to LogicProgram.
This commit is contained in:
Fedor Isakov 2018-05-24 11:52:36 +02:00
parent bc1f865eeb
commit ce688b3672
14 changed files with 3872 additions and 1614 deletions

View File

@ -2320,7 +2320,7 @@
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typechecking.test" depends="java.compile.jetbrains.mps.baseLanguageExt, java.compile.jetbrains.mps.lang.typesystem2.runtime, java.compile.jetbrains.mps.lang.typesystem2.template, java.compile.jetbrains.mps.logic.runtime, java.compile.jetbrains.mps.typechecking, java.compile.jetbrains.mps.typechecking.reporting, java.compile.jetbrains.mps.typechecking.ui, fetchDependencies">
<target name="java.compile.jetbrains.mps.lang.typechecking.test" depends="java.compile.jetbrains.mps.baseLanguageExt, java.compile.jetbrains.mps.dataform, java.compile.jetbrains.mps.lang.typesystem2, java.compile.jetbrains.mps.lang.typesystem2.runtime, java.compile.jetbrains.mps.lang.typesystem2.template, java.compile.jetbrains.mps.logic, java.compile.jetbrains.mps.logic.runtime, java.compile.jetbrains.mps.typechecking, java.compile.jetbrains.mps.typechecking.reporting, java.compile.jetbrains.mps.typechecking.ui, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.typechecking.test/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typechecking.test" />
<javac destdir="${build.tmp}/java/out/jetbrains.mps.lang.typechecking.test" fork="true" encoding="utf8" includeantruntime="false" debug="true">
@ -2347,8 +2347,11 @@
<fileset file="${artifacts.mps}/lib/mps-platform.jar" />
<fileset file="${artifacts.mps}/lib/mps-environment.jar" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.baseLanguageExt" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.dataform" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.runtime" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.template" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.logic" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.logic.runtime" />
<fileset file="${artifacts.mps}/lib/mps-icons.jar" />
<fileset file="${artifacts.mps}/lib/mps-workbench.jar" />
@ -2376,10 +2379,15 @@
<fileset dir="${artifacts.mps}/lib" includes="*.jar" />
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.jar" />
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.classifiers.jar" />
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.closures.jar" />
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.collections.jar" />
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.logging.runtime.jar" />
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.scopes.jar" />
<fileset file="${artifacts.mps}/plugins/mps-testing/languages/baseLanguage/jetbrains.mps.baseLanguage.unitTest.jar" />
<fileset file="${artifacts.mps}/languages/languageDesign/jetbrains.mps.lang.core.jar" />
<fileset file="${artifacts.mps}/languages/languageDesign/jetbrains.mps.lang.descriptor.jar" />
<fileset file="${artifacts.mps}/languages/languageDesign/jetbrains.mps.lang.modelapi.jar" />
<fileset file="${artifacts.mps}/languages/languageDesign/jetbrains.mps.lang.smodel.jar" />
<fileset file="${artifacts.mps}/plugins/mps-testing/languages/languageDesign/jetbrains.mps.lang.test.jar" />
<fileset file="${artifacts.mps}/plugins/mps-testing/languages/languageDesign/jetbrains.mps.lang.test.matcher.jar" />
<fileset file="${artifacts.mps}/plugins/mps-testing/languages/languageDesign/jetbrains.mps.lang.test.runtime.jar" />

View File

@ -196,7 +196,7 @@
</language>
</registry>
<node concept="312cEu" id="5rhZO$TYZJM">
<property role="TrG5h" value="ChrProgramBuilder" />
<property role="TrG5h" value="LogicProgramBuilder" />
<node concept="2tJIrI" id="5rhZO$TZ4oM" role="jymVt" />
<node concept="3clFbW" id="5rhZO$TZ9Ji" role="jymVt">
<node concept="3cqZAl" id="5rhZO$TZ9Jk" role="3clF45" />
@ -260,7 +260,7 @@
<node concept="3clFbF" id="5rhZO$TZjg5" role="3cqZAp">
<node concept="2ShNRf" id="5rhZO$TZjg3" role="3clFbG">
<node concept="1pGfFk" id="5rhZO$TZlOE" role="2ShVmc">
<ref role="37wK5l" node="7eGEHDlcF69" resolve="ChrProgram" />
<ref role="37wK5l" node="7eGEHDlcF69" resolve="LogicProgram" />
<node concept="37vLTw" id="5rhZO$TZlPA" role="37wK5m">
<ref role="3cqZAo" node="5rhZO$TZiL2" resolve="name" />
</node>
@ -600,7 +600,7 @@
<node concept="3Tm1VV" id="18cJbc1659x" role="1B3o_S" />
</node>
<node concept="312cEu" id="7eGEHDlcEJ0">
<property role="TrG5h" value="ChrProgram" />
<property role="TrG5h" value="LogicProgram" />
<node concept="3uibUv" id="78CwJJcTnG5" role="1zkMxy">
<ref role="3uigEE" to="av0y:~Program" resolve="Program" />
</node>

View File

@ -1123,7 +1123,7 @@
</node>
<node concept="1SiIV0" id="wfREvqakXX" role="3bR37C">
<node concept="3bR9La" id="wfREvqakXY" role="1SiIV1">
<property role="3bR36h" value="false" />
<property role="3bR36h" value="true" />
<ref role="3bR37D" node="7BVjoXzUxoR" resolve="jetbrains.mps.logic.reactor" />
</node>
</node>
@ -1319,6 +1319,12 @@
<ref role="3bR37D" node="oI9YrJ7Rx" resolve="jetbrains.mps.typechecking.reporting" />
</node>
</node>
<node concept="1SiIV0" id="6OXbTD_u8Xd" role="3bR37C">
<node concept="3bR9La" id="6OXbTD_u8Xe" role="1SiIV1">
<property role="3bR36h" value="false" />
<ref role="3bR37D" node="7BVjoXzUx6U" resolve="jetbrains.mps.lang.typesystem2" />
</node>
</node>
</node>
</node>
<node concept="2G$12M" id="65DJywFj0uW" role="3989C9">

View File

@ -20,6 +20,7 @@
<dependency reexport="false">6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.typechecking)</dependency>
<dependency reexport="false">ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)</dependency>
<dependency reexport="false">da80355b-a098-4248-9ec8-70d10dd7e9af(jetbrains.mps.typechecking.reporting)</dependency>
<dependency reexport="false">c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.typesystem2)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="6" />
@ -51,15 +52,23 @@
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)" version="0" />
<module reference="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" version="0" />
<module reference="fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)" version="0" />
<module reference="83888646-71ce-4f1c-9c53-c54016f6ad4f(jetbrains.mps.baseLanguage.collections)" version="0" />
<module reference="e39e4a59-8cb6-498e-860e-8fa8361c0d90(jetbrains.mps.baseLanguage.scopes)" version="0" />
<module reference="0fda14cc-a416-4c81-869a-2175d8b3325d(jetbrains.mps.baseLanguageExt)" version="0" />
<module reference="942985d5-7bcf-46ee-8b79-7b662eaebb4e(jetbrains.mps.dataform)" version="0" />
<module reference="bfbdd672-7ff5-403f-af4f-16da5226f34c(jetbrains.mps.findUsages.runtime)" version="0" />
<module reference="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
<module reference="f4ad079d-bc71-4ffb-9600-9328705cf998(jetbrains.mps.lang.descriptor)" version="0" />
<module reference="446c26eb-2b7b-4bf0-9b35-f83fa582753e(jetbrains.mps.lang.modelapi)" version="0" />
<module reference="7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)" version="1" />
<module reference="9ded098b-ad6a-4657-bfd9-48636cfe8bc3(jetbrains.mps.lang.traceable)" version="0" />
<module reference="c9670c16-a215-41fb-8784-04b14329799d(jetbrains.mps.lang.typechecking.test)" version="0" />
<module reference="c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.typesystem2)" version="0" />
<module reference="26e8f4ce-2a35-4f44-8065-e5ba154b18e9(jetbrains.mps.lang.typesystem2.runtime)" version="0" />
<module reference="ff6372a2-2f45-4ec3-952b-02581666015f(jetbrains.mps.lang.typesystem2.template)" version="0" />
<module reference="35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)" version="0" />
<module reference="bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)" version="0" />
<module reference="a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)" version="0" />
<module reference="6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.typechecking)" version="0" />

View File

@ -45,6 +45,10 @@
<import index="qox2" ref="r:7ff0776c-aea4-4df2-88a3-2efb6b568dc3(jetbrains.mps.typechecking.plugin)" />
<import index="5zyv" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.concurrent(JDK/)" />
<import index="18ew" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.util(MPS.Core/)" />
<import index="kqnc" ref="r:92b96158-68e6-4f53-a32b-36e2b456fe01(jetbrains.mps.baseLanguageExt.types)" />
<import index="wq2x" ref="r:83137295-aa87-45e8-b0c0-ede2adf2a396(jetbrains.mps.lang.typesystem2.structure)" />
<import index="i348" ref="r:42a15dec-83a9-4fe1-80d6-3bf898c512bd(jetbrains.mps.lang.typesystem2.rule)" />
<import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" />
</imports>
<registry>
<language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
@ -158,6 +162,7 @@
<concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
<property id="1068580320021" name="value" index="3cmrfH" />
</concept>
<concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
<concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
</concept>
@ -251,6 +256,12 @@
<child id="1172028236559" name="expression" index="3ykU8v" />
</concept>
</language>
<language id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging">
<concept id="1167227138527" name="jetbrains.mps.baseLanguage.logging.structure.LogStatement" flags="nn" index="34ab3g">
<property id="1167245565795" name="severity" index="35gtTG" />
<child id="1167227463056" name="logExpression" index="34bqiv" />
</concept>
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
<concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
<reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
@ -258,9 +269,13 @@
<concept id="1140725362528" name="jetbrains.mps.lang.smodel.structure.Link_SetTargetOperation" flags="nn" index="2oxUTD">
<child id="1140725362529" name="linkTarget" index="2oxUTC" />
</concept>
<concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
<concept id="7400021826774799413" name="jetbrains.mps.lang.smodel.structure.NodePointerExpression" flags="ng" index="2tJFMh">
<child id="7400021826774799510" name="ref" index="2tJFKM" />
</concept>
<concept id="4065387505485742749" name="jetbrains.mps.lang.smodel.structure.AbstractPointerResolveOperation" flags="ng" index="2yCiFS">
<child id="3648723375513868575" name="repositoryArg" index="Vysub" />
</concept>
<concept id="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
<child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
<child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
@ -271,6 +286,7 @@
<child id="1145404616321" name="leftExpression" index="2JrQYb" />
</concept>
<concept id="1171310072040" name="jetbrains.mps.lang.smodel.structure.Node_GetContainingRootOperation" flags="nn" index="2Rxl7S" />
<concept id="3648723375513868532" name="jetbrains.mps.lang.smodel.structure.NodePointer_ResolveOperation" flags="ng" index="Vyspw" />
<concept id="1227264722563" name="jetbrains.mps.lang.smodel.structure.EqualsStructurallyExpression" flags="nn" index="2YFouu" />
<concept id="597763930871270009" name="jetbrains.mps.lang.smodel.structure.ChildNodeRefExpression" flags="nn" index="3fl2lp">
<reference id="597763930871272016" name="targetNode" index="3fl3PK" />
@ -764,6 +780,20 @@
<node concept="1QHqEK" id="4BHjwwGUr4u" role="3cqZAp">
<node concept="1QHqEC" id="4BHjwwGUr4w" role="1QHqEI">
<node concept="3clFbS" id="4BHjwwGUr4y" role="1bW5cS">
<node concept="3cpWs8" id="6OXbTD_oHco" role="3cqZAp">
<node concept="3cpWsn" id="6OXbTD_oHcp" role="3cpWs9">
<property role="TrG5h" value="repo" />
<node concept="3uibUv" id="6OXbTD_oHcm" role="1tU5fm">
<ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
</node>
<node concept="2OqwBi" id="6OXbTD_oHcq" role="33vP2m">
<node concept="1jxXqW" id="6OXbTD_oHcr" role="2Oq$k0" />
<node concept="liA8E" id="6OXbTD_oHcs" role="2OqNvi">
<ref role="37wK5l" to="z1c3:~Project.getRepository():org.jetbrains.mps.openapi.module.SRepository" resolve="getRepository" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="4BHjwwGUyPL" role="3cqZAp">
<node concept="3cpWsn" id="4BHjwwGUyPM" role="3cpWs9">
<property role="TrG5h" value="cls" />
@ -778,59 +808,90 @@
</node>
<node concept="liA8E" id="4BHjwwGUyPP" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNodeReference.resolve(org.jetbrains.mps.openapi.module.SRepository):org.jetbrains.mps.openapi.model.SNode" resolve="resolve" />
<node concept="2OqwBi" id="4BHjwwGUyPQ" role="37wK5m">
<node concept="1jxXqW" id="4BHjwwGUyPR" role="2Oq$k0" />
<node concept="liA8E" id="4BHjwwGUyPS" role="2OqNvi">
<ref role="37wK5l" to="z1c3:~Project.getRepository():org.jetbrains.mps.openapi.module.SRepository" resolve="getRepository" />
<node concept="37vLTw" id="6OXbTD_oHct" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_oHcp" resolve="repo" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="6OXbTD_o6iu" role="3cqZAp">
<node concept="3cpWsn" id="6OXbTD_o6iv" role="3cpWs9">
<property role="TrG5h" value="session" />
<node concept="3uibUv" id="6OXbTD_o6ic" role="1tU5fm">
<ref role="3uigEE" to="hano:CGeqIk8WWU" resolve="RuleProcessingSession" />
</node>
<node concept="2YIFZM" id="6OXbTD_oXUh" role="33vP2m">
<ref role="37wK5l" to="hano:7DvO2M9p276" resolve="newSession" />
<ref role="1Pybhc" to="hano:CGeqIk8WWU" resolve="RuleProcessingSession" />
<node concept="37vLTw" id="6OXbTD_oYKG" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_oHcp" resolve="repo" />
</node>
<node concept="2OqwBi" id="6OXbTD_p3E4" role="37wK5m">
<node concept="37vLTw" id="6OXbTD_p2Rk" role="2Oq$k0">
<ref role="3cqZAo" node="4BHjwwGUyPM" resolve="cls" />
</node>
<node concept="I4A8Y" id="6OXbTD_p4Bp" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="6OXbTD_oquh" role="3cqZAp">
<node concept="3cpWsn" id="6OXbTD_oqui" role="3cpWs9">
<property role="TrG5h" value="queryTemplate" />
<node concept="3uibUv" id="6OXbTD_oqtX" role="1tU5fm">
<ref role="3uigEE" to="i348:6OXbTD$iNPP" resolve="QueryTemplate" />
</node>
<node concept="2OqwBi" id="6OXbTD_oquj" role="33vP2m">
<node concept="2OqwBi" id="6OXbTD_oquk" role="2Oq$k0">
<node concept="37vLTw" id="6OXbTD_oqul" role="2Oq$k0">
<ref role="3cqZAo" node="6OXbTD_o6iv" resolve="session" />
</node>
<node concept="liA8E" id="6OXbTD_oqum" role="2OqNvi">
<ref role="37wK5l" to="hano:7WKNeR9alW4" resolve="queryTemplates" />
</node>
</node>
<node concept="liA8E" id="6OXbTD_oqun" role="2OqNvi">
<ref role="37wK5l" to="hano:7WKNeR95RPZ" resolve="byFqName" />
<node concept="2OqwBi" id="6OXbTD_oquo" role="37wK5m">
<node concept="2OqwBi" id="6OXbTD_oqup" role="2Oq$k0">
<node concept="2tJFMh" id="6OXbTD_oquq" role="2Oq$k0">
<node concept="ZC_QK" id="6OXbTD_oqur" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:6OXbTD$fto2" resolve="typecheck" />
</node>
</node>
<node concept="Vyspw" id="6OXbTD_oqus" role="2OqNvi">
<node concept="37vLTw" id="6OXbTD_oLKo" role="Vysub">
<ref role="3cqZAo" node="6OXbTD_oHcp" resolve="repo" />
</node>
</node>
</node>
<node concept="2qgKlT" id="6OXbTD_oquu" role="2OqNvi">
<ref role="37wK5l" to="tpcu:hEwIO9y" resolve="getFqName" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="14$_tTxzuR6" role="3cqZAp">
<node concept="3cpWsn" id="14$_tTxzuR7" role="3cpWs9">
<property role="TrG5h" value="modelRepo" />
<node concept="3uibUv" id="14$_tTxzuQX" role="1tU5fm">
<ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
</node>
<node concept="2OqwBi" id="14$_tTxzuR8" role="33vP2m">
<node concept="2JrnkZ" id="14$_tTxzuR9" role="2Oq$k0">
<node concept="2OqwBi" id="14$_tTxzuRa" role="2JrQYb">
<node concept="37vLTw" id="14$_tTxzuRb" role="2Oq$k0">
<ref role="3cqZAo" node="4BHjwwGUyPM" resolve="cls" />
</node>
<node concept="I4A8Y" id="14$_tTxzuRc" role="2OqNvi" />
</node>
</node>
<node concept="liA8E" id="14$_tTxzuRd" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SModel.getRepository():org.jetbrains.mps.openapi.module.SRepository" resolve="getRepository" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="14$_tTxzzvw" role="3cqZAp" />
<node concept="3clFbH" id="6OXbTD_nzVS" role="3cqZAp" />
<node concept="3cpWs8" id="6$7vuu2ugt2" role="3cqZAp">
<node concept="3cpWsn" id="6$7vuu2ugt3" role="3cpWs9">
<property role="TrG5h" value="tplApp" />
<node concept="3uibUv" id="6$7vuu2ugsZ" role="1tU5fm">
<ref role="3uigEE" to="hano:3GlpCDSxTG7" resolve="ProgramBuilder" />
<ref role="3uigEE" to="hano:3GlpCDSxTG7" resolve="ProgramProducer" />
</node>
<node concept="2ShNRf" id="6$7vuu2ugt4" role="33vP2m">
<node concept="1pGfFk" id="6$7vuu2ugt5" role="2ShVmc">
<ref role="37wK5l" to="hano:7DvO2M9pdut" resolve="ProgramBuilder" />
<node concept="2YIFZM" id="7DvO2M9pPpZ" role="37wK5m">
<ref role="37wK5l" to="hano:7DvO2M9p276" resolve="newSession" />
<ref role="1Pybhc" to="hano:CGeqIk8WWU" resolve="RuleProcessingSession" />
<node concept="37vLTw" id="7DvO2M9pQ0S" role="37wK5m">
<ref role="3cqZAo" node="14$_tTxzuR7" resolve="modelRepo" />
</node>
<node concept="2OqwBi" id="7DvO2M9pQ0T" role="37wK5m">
<node concept="37vLTw" id="7DvO2M9pQ0U" role="2Oq$k0">
<ref role="3cqZAo" node="4BHjwwGUyPM" resolve="cls" />
</node>
<node concept="I4A8Y" id="7DvO2M9pQ0V" role="2OqNvi" />
</node>
<ref role="37wK5l" to="hano:7WKNeR9bcL$" resolve="ProgramProducer" />
<node concept="Xl_RD" id="6OXbTDxuaSu" role="37wK5m">
<property role="Xl_RC" value="test" />
</node>
<node concept="37vLTw" id="6OXbTD_oFoC" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_o6iv" resolve="session" />
</node>
<node concept="37vLTw" id="6OXbTD_ouEx" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_oqui" resolve="queryTemplate" />
</node>
</node>
</node>
@ -847,7 +908,7 @@
<ref role="3cqZAo" node="6$7vuu2ugt3" resolve="tplApp" />
</node>
<node concept="liA8E" id="6$7vuu2ujxU" role="2OqNvi">
<ref role="37wK5l" to="hano:7kTeLbPojCz" resolve="forEach" />
<ref role="37wK5l" to="hano:7kTeLbPojCz" resolve="produce" />
<node concept="2ShNRf" id="3IIf9O_jdGL" role="37wK5m">
<node concept="2HTt$P" id="3IIf9O_jgA8" role="2ShVmc">
<node concept="3Tqbb2" id="3IIf9O_jhoV" role="2HTBi0" />
@ -859,9 +920,6 @@
</node>
</node>
</node>
<node concept="Xl_RD" id="6$7vuu2ujxY" role="37wK5m">
<property role="Xl_RC" value="test" />
</node>
</node>
</node>
</node>
@ -1083,6 +1141,19 @@
</node>
</node>
</node>
<node concept="3clFbH" id="6OXbTD_$g_q" role="3cqZAp" />
<node concept="34ab3g" id="6OXbTD_$iGJ" role="3cqZAp">
<property role="35gtTG" value="error" />
<node concept="3cpWs3" id="6OXbTD_$mKd" role="34bqiv">
<node concept="37vLTw" id="6OXbTD_$oP8" role="3uHU7w">
<ref role="3cqZAo" node="oI9YrxmUa" resolve="types" />
</node>
<node concept="Xl_RD" id="6OXbTD_$iGL" role="3uHU7B">
<property role="Xl_RC" value="*** types: " />
</node>
</node>
</node>
<node concept="3clFbH" id="6OXbTD_$gB9" role="3cqZAp" />
<node concept="3vwNmj" id="oI9YrxthE" role="3cqZAp">
<node concept="2YFouu" id="oI9YrxthF" role="3vwVQn">
<node concept="2c44tf" id="oI9YrxthG" role="3uHU7B">

View File

@ -26062,8 +26062,9 @@
<node concept="3cpWs8" id="1CcQBrPeqBt" role="3cqZAp">
<node concept="3cpWsn" id="1CcQBrPeqBu" role="3cpWs9">
<property role="TrG5h" value="template" />
<node concept="3uibUv" id="1CcQBrPeqBs" role="1tU5fm">
<ref role="3uigEE" to="i348:1ffsG7bW_V4" resolve="RuleTemplate" />
<node concept="3uibUv" id="3IIf9OADWM$" role="1tU5fm">
<ref role="3uigEE" to="i348:1ffsG7bUbCM" resolve="BaseRuleTemplate" />
<node concept="3qTvmN" id="3IIf9OADXsN" role="11_B2D" />
</node>
<node concept="1LFfDK" id="1CcQBrPeqBv" role="33vP2m">
<node concept="3cmrfG" id="1CcQBrPeqBw" role="1LF_Uc">
@ -26086,7 +26087,7 @@
<ref role="3cqZAo" node="1CcQBrPeqBu" resolve="template" />
</node>
<node concept="liA8E" id="6i42QSsgfqW" role="2OqNvi">
<ref role="37wK5l" to="i348:6i42QSs8m5b" resolve="templateRef" />
<ref role="37wK5l" to="i348:62MNP_kY8lD" resolve="templateRef" />
</node>
</node>
</node>
@ -26143,10 +26144,10 @@
<ref role="3uigEE" to="hano:1CcQBrPcZVG" resolve="HandlingStage" />
</node>
<node concept="3uibUv" id="1ffsG7c4ezn" role="1Lm7xW">
<ref role="3uigEE" to="i348:1ffsG7bW_V4" resolve="RuleTemplate" />
<ref role="3uigEE" to="i348:1ffsG7bUbCM" resolve="BaseRuleTemplate" />
<node concept="3qUE_q" id="7XdbJdyRKIf" role="11_B2D">
<node concept="3uibUv" id="7XdbJdyRMGp" role="3qUE_r">
<ref role="3uigEE" to="i348:2RRx4MZ6_68" resolve="RuleTemplateApplicationToken" />
<ref role="3uigEE" to="i348:2RRx4MZ6_68" resolve="RuleTemplateToken" />
</node>
</node>
</node>
@ -31640,9 +31641,6 @@
<node concept="2ShNRf" id="7WKNeR8TcXE" role="25WWJ7">
<node concept="1pGfFk" id="7WKNeR8TcXF" role="2ShVmc">
<ref role="37wK5l" to="tj24:7WKNeR9fh8j" resolve="ApplyTemplatesStep" />
<node concept="37vLTw" id="7WKNeR9foS9" role="37wK5m">
<ref role="3cqZAo" node="7WKNeR9fm7b" resolve="queryFqName" />
</node>
<node concept="2OqwBi" id="7WKNeR8TcXG" role="37wK5m">
<node concept="Xjq3P" id="7WKNeR8TcXH" role="2Oq$k0" />
<node concept="2OwXpG" id="7WKNeR8TcXI" role="2OqNvi">
@ -31652,6 +31650,9 @@
<node concept="37vLTw" id="7WKNeR8ThOi" role="37wK5m">
<ref role="3cqZAo" node="7WKNeR8SQxI" resolve="repository" />
</node>
<node concept="37vLTw" id="7WKNeR9foS9" role="37wK5m">
<ref role="3cqZAo" node="7WKNeR9fm7b" resolve="queryFqName" />
</node>
</node>
</node>
</node>
@ -33769,8 +33770,8 @@
<node concept="2OqwBi" id="7WKNeR9hhki" role="37vLTx">
<node concept="2OqwBi" id="7WKNeR9hhkj" role="2Oq$k0">
<node concept="2tJFMh" id="7WKNeR9hhkk" role="2Oq$k0">
<node concept="ZC_QK" id="7WKNeR9hhkl" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:7WKNeR9hdZc" resolve="main" />
<node concept="ZC_QK" id="6OXbTD$ftQw" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:6OXbTD$fto2" resolve="typecheck" />
</node>
</node>
<node concept="Vyspw" id="7WKNeR9hhkm" role="2OqNvi">
@ -33787,7 +33788,7 @@
</node>
</node>
</node>
<node concept="2qgKlT" id="7WKNeR9hhks" role="2OqNvi">
<node concept="2qgKlT" id="6OXbTD$fur0" role="2OqNvi">
<ref role="37wK5l" to="tpcu:hEwIO9y" resolve="getFqName" />
</node>
</node>
@ -33938,8 +33939,8 @@
<node concept="2OqwBi" id="3IIf9O_okkp" role="37vLTx">
<node concept="2OqwBi" id="3IIf9O_okkq" role="2Oq$k0">
<node concept="2tJFMh" id="3IIf9O_okkr" role="2Oq$k0">
<node concept="ZC_QK" id="3IIf9O_okks" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:7WKNeR9hdZc" resolve="main" />
<node concept="ZC_QK" id="6OXbTD$fxQ1" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:6OXbTD$fto2" resolve="typecheck" />
</node>
</node>
<node concept="Vyspw" id="3IIf9O_okkt" role="2OqNvi">
@ -33956,7 +33957,7 @@
</node>
</node>
</node>
<node concept="2qgKlT" id="3IIf9O_okkz" role="2OqNvi">
<node concept="2qgKlT" id="6OXbTD$fyqI" role="2OqNvi">
<ref role="37wK5l" to="tpcu:hEwIO9y" resolve="getFqName" />
</node>
</node>

View File

@ -368,6 +368,9 @@
<reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
</concept>
<concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
<concept id="7400021826771268254" name="jetbrains.mps.lang.smodel.structure.SNodePointerType" flags="ig" index="2sp9CU">
<reference id="7400021826771268269" name="concept" index="2sp9C9" />
</concept>
<concept id="7400021826774799413" name="jetbrains.mps.lang.smodel.structure.NodePointerExpression" flags="ng" index="2tJFMh">
<child id="7400021826774799510" name="ref" index="2tJFKM" />
</concept>
@ -407,6 +410,13 @@
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
<concept id="709746936026466394" name="jetbrains.mps.lang.core.structure.ChildAttribute" flags="ng" index="3VBwX9">
<property id="709746936026609031" name="linkId" index="3V$3ak" />
<property id="709746936026609029" name="linkRole" index="3V$3am" />
</concept>
<concept id="4452961908202556907" name="jetbrains.mps.lang.core.structure.BaseCommentAttribute" flags="ng" index="1X3_iC">
<child id="3078666699043039389" name="commentedNode" index="8Wnug" />
</concept>
</language>
<language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
<concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
@ -902,15 +912,15 @@
<node concept="2ShNRf" id="3IIf9OAgt3H" role="33vP2m">
<node concept="1pGfFk" id="3IIf9OAgt3I" role="2ShVmc">
<ref role="37wK5l" node="7WKNeR9fh8j" resolve="ApplyTemplatesStep" />
<node concept="1rXfSq" id="3IIf9OAgtip" role="37wK5m">
<ref role="37wK5l" node="3IIf9OA6Owz" resolve="subtypeofQueryFqName" />
</node>
<node concept="37vLTw" id="3IIf9OAm07q" role="37wK5m">
<ref role="3cqZAo" node="3IIf9OAm07k" resolve="nodes" />
</node>
<node concept="37vLTw" id="3IIf9OAgt3L" role="37wK5m">
<ref role="3cqZAo" node="3IIf9O_u8qV" resolve="repository" />
</node>
<node concept="1rXfSq" id="3IIf9OAgtip" role="37wK5m">
<ref role="37wK5l" node="3IIf9OA6Owz" resolve="subtypeofQueryFqName" />
</node>
</node>
</node>
</node>
@ -1025,8 +1035,8 @@
<node concept="2OqwBi" id="3IIf9OA6MX9" role="3cqZAk">
<node concept="2OqwBi" id="3IIf9OA6MXa" role="2Oq$k0">
<node concept="2tJFMh" id="3IIf9OA6MXb" role="2Oq$k0">
<node concept="ZC_QK" id="3IIf9OA6MXc" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:7WKNeR9hdZc" resolve="main" />
<node concept="ZC_QK" id="6OXbTD$P1oO" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:6OXbTD$fto2" resolve="typecheck" />
</node>
</node>
<node concept="Vyspw" id="3IIf9OA6MXd" role="2OqNvi">
@ -1052,8 +1062,8 @@
<node concept="2OqwBi" id="3IIf9OA6OwC" role="3cqZAk">
<node concept="2OqwBi" id="3IIf9OA6OwD" role="2Oq$k0">
<node concept="2tJFMh" id="3IIf9OA6OwE" role="2Oq$k0">
<node concept="ZC_QK" id="3IIf9OA6Pov" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:3IIf9OA5vJR" resolve="subtypeOf" />
<node concept="ZC_QK" id="6OXbTD$P1P2" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:6OXbTD$ftrf" resolve="subtypeOf" />
</node>
</node>
<node concept="Vyspw" id="3IIf9OA6OwG" role="2OqNvi">
@ -1062,7 +1072,7 @@
</node>
</node>
</node>
<node concept="2qgKlT" id="3IIf9OA6OwI" role="2OqNvi">
<node concept="2qgKlT" id="6OXbTD$P2nZ" role="2OqNvi">
<ref role="37wK5l" to="tpcu:hEwIO9y" resolve="getFqName" />
</node>
</node>
@ -1114,15 +1124,15 @@
<node concept="2ShNRf" id="3IIf9O_qVtJ" role="33vP2m">
<node concept="1pGfFk" id="3IIf9O_qVtK" role="2ShVmc">
<ref role="37wK5l" node="7WKNeR9fh8j" resolve="ApplyTemplatesStep" />
<node concept="37vLTw" id="3IIf9O_rfQn" role="37wK5m">
<ref role="3cqZAo" node="3IIf9O_r1EB" resolve="queryFqName" />
</node>
<node concept="37vLTw" id="3IIf9O_qVvh" role="37wK5m">
<ref role="3cqZAo" node="3IIf9O_qVvd" resolve="nodes" />
</node>
<node concept="37vLTw" id="3IIf9O_qVvf" role="37wK5m">
<ref role="3cqZAo" node="3IIf9O_qVvb" resolve="repository" />
</node>
<node concept="37vLTw" id="3IIf9O_rfQn" role="37wK5m">
<ref role="3cqZAo" node="3IIf9O_r1EB" resolve="queryFqName" />
</node>
</node>
</node>
</node>
@ -3338,8 +3348,8 @@
<node concept="3cpWs8" id="7WKNeR9z3I$" role="3cqZAp">
<node concept="3cpWsn" id="7WKNeR9z3I_" role="3cpWs9">
<property role="TrG5h" value="queryTemplate" />
<node concept="3uibUv" id="7WKNeR9z3I6" role="1tU5fm">
<ref role="3uigEE" to="i348:7P_FdVPs4aA" resolve="QueryTemplate" />
<node concept="3uibUv" id="6OXbTD$pURF" role="1tU5fm">
<ref role="3uigEE" to="i348:6OXbTD$iNPP" resolve="QueryTemplate" />
</node>
<node concept="2OqwBi" id="7WKNeR9z3IA" role="33vP2m">
<node concept="37vLTw" id="7WKNeR9z3IB" role="2Oq$k0">
@ -3388,8 +3398,8 @@
<node concept="YeOm9" id="7WKNeR9$e5a" role="2ShVmc">
<node concept="1Y3b0j" id="7WKNeR9$e5d" role="YeSDq">
<property role="2bfB8j" value="true" />
<ref role="1Y3XeK" to="i348:7P_FdVQ_k3b" resolve="QueryTemplate.QueryObservable" />
<ref role="37wK5l" to="wyt6:~Object.&lt;init&gt;()" resolve="Object" />
<ref role="1Y3XeK" to="i348:7P_FdVQ_k3b" resolve="QueryTemplate.QueryObservable" />
<node concept="3Tm1VV" id="7WKNeR9$e5e" role="1B3o_S" />
<node concept="3clFb_" id="7WKNeR9$e5f" role="jymVt">
<property role="1EzhhJ" value="false" />
@ -4369,7 +4379,6 @@
<property role="3GE5qa" value="launch.step" />
<node concept="3Tm1VV" id="3F6vMxq$KGN" role="1B3o_S" />
<node concept="2tJIrI" id="6kREIVkR068" role="jymVt" />
<node concept="2tJIrI" id="6kREIVkQZkh" role="jymVt" />
<node concept="3clFbW" id="7kTeLbPt4na" role="jymVt">
<node concept="3cqZAl" id="7kTeLbPt4nb" role="3clF45" />
<node concept="3Tm1VV" id="7kTeLbPt4nc" role="1B3o_S" />
@ -4417,16 +4426,16 @@
<node concept="3cqZAl" id="7WKNeR9fh8k" role="3clF45" />
<node concept="3Tm1VV" id="7WKNeR9fh8l" role="1B3o_S" />
<node concept="3clFbS" id="7WKNeR9fh8m" role="3clF47">
<node concept="3clFbF" id="7WKNeR9fh8n" role="3cqZAp">
<node concept="37vLTI" id="7WKNeR9fh8o" role="3clFbG">
<node concept="2OqwBi" id="7WKNeR9fh8p" role="37vLTJ">
<node concept="Xjq3P" id="7WKNeR9fh8q" role="2Oq$k0" />
<node concept="2OwXpG" id="7WKNeR9fh8r" role="2OqNvi">
<ref role="2Oxat5" node="6kREIVkLEGt" resolve="repository" />
<node concept="3clFbF" id="7WKNeR9fkhk" role="3cqZAp">
<node concept="37vLTI" id="7WKNeR9fkhl" role="3clFbG">
<node concept="2OqwBi" id="7WKNeR9fkhm" role="37vLTJ">
<node concept="Xjq3P" id="7WKNeR9fkhn" role="2Oq$k0" />
<node concept="2OwXpG" id="7WKNeR9fkho" role="2OqNvi">
<ref role="2Oxat5" node="7WKNeR9fj4f" resolve="queryFqName" />
</node>
</node>
<node concept="37vLTw" id="7WKNeR9fh8s" role="37vLTx">
<ref role="3cqZAo" node="7WKNeR9fh8_" resolve="repository" />
<node concept="37vLTw" id="7WKNeR9fkhp" role="37vLTx">
<ref role="3cqZAo" node="7WKNeR9fiNv" resolve="queryFqName" />
</node>
</node>
</node>
@ -4443,23 +4452,32 @@
</node>
</node>
</node>
<node concept="3clFbF" id="7WKNeR9fkhk" role="3cqZAp">
<node concept="37vLTI" id="7WKNeR9fkhl" role="3clFbG">
<node concept="2OqwBi" id="7WKNeR9fkhm" role="37vLTJ">
<node concept="Xjq3P" id="7WKNeR9fkhn" role="2Oq$k0" />
<node concept="2OwXpG" id="7WKNeR9fkho" role="2OqNvi">
<ref role="2Oxat5" node="7WKNeR9fj4f" resolve="queryFqName" />
<node concept="3clFbF" id="7WKNeR9fh8n" role="3cqZAp">
<node concept="37vLTI" id="7WKNeR9fh8o" role="3clFbG">
<node concept="2OqwBi" id="7WKNeR9fh8p" role="37vLTJ">
<node concept="Xjq3P" id="7WKNeR9fh8q" role="2Oq$k0" />
<node concept="2OwXpG" id="7WKNeR9fh8r" role="2OqNvi">
<ref role="2Oxat5" node="6kREIVkLEGt" resolve="repository" />
</node>
</node>
<node concept="37vLTw" id="7WKNeR9fkhp" role="37vLTx">
<ref role="3cqZAo" node="7WKNeR9fiNv" resolve="queryFqName" />
<node concept="37vLTw" id="7WKNeR9fh8s" role="37vLTx">
<ref role="3cqZAo" node="7WKNeR9fh8_" resolve="repository" />
</node>
</node>
</node>
<node concept="3clFbF" id="6OXbTDxIg05" role="3cqZAp">
<node concept="37vLTI" id="6OXbTDxIg07" role="3clFbG">
<node concept="2OqwBi" id="6OXbTDxIh3L" role="37vLTJ">
<node concept="Xjq3P" id="6OXbTDxIhcu" role="2Oq$k0" />
<node concept="2OwXpG" id="6OXbTDxIh3O" role="2OqNvi">
<ref role="2Oxat5" node="6OXbTDxIg00" resolve="queryParameter" />
</node>
</node>
<node concept="37vLTw" id="6OXbTDxIg0b" role="37vLTx">
<ref role="3cqZAo" node="6OXbTDxI9hi" resolve="queryParameter" />
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="7WKNeR9fiNv" role="3clF46">
<property role="TrG5h" value="queryFqName" />
<node concept="17QB3L" id="7WKNeR9fiNw" role="1tU5fm" />
</node>
<node concept="37vLTG" id="7WKNeR9fh8z" role="3clF46">
<property role="TrG5h" value="inputNodes" />
@ -4471,6 +4489,18 @@
<ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
</node>
</node>
<node concept="37vLTG" id="7WKNeR9fiNv" role="3clF46">
<property role="TrG5h" value="queryFqName" />
<node concept="17QB3L" id="7WKNeR9fiNw" role="1tU5fm" />
</node>
<node concept="37vLTG" id="6OXbTDxI9hi" role="3clF46">
<property role="TrG5h" value="queryParameter" />
<node concept="8X2XB" id="6OXbTDxIdpB" role="1tU5fm">
<node concept="3uibUv" id="6OXbTDxIdi7" role="8Xvag">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7WKNeR9fh8i" role="jymVt" />
<node concept="3clFb_" id="1pPth$lMB$v" role="jymVt">
@ -4698,12 +4728,20 @@
<node concept="2OqwBi" id="Hg6Enc4Wbs" role="37vLTJ">
<node concept="Xjq3P" id="Hg6Enc4Wbt" role="2Oq$k0" />
<node concept="2OwXpG" id="Hg6Enc4Wbu" role="2OqNvi">
<ref role="2Oxat5" node="3GlpCDSzA$E" resolve="programBuilder" />
<ref role="2Oxat5" node="3GlpCDSzA$E" resolve="programProducer" />
</node>
</node>
<node concept="2ShNRf" id="Hg6Enc4Wbv" role="37vLTx">
<node concept="1pGfFk" id="Hg6Enc4Wbw" role="2ShVmc">
<ref role="37wK5l" to="hano:7WKNeR9bcL$" resolve="ProgramBuilder" />
<ref role="37wK5l" to="hano:7WKNeR9bcL$" resolve="ProgramProducer" />
<node concept="3cpWs3" id="6OXbTDxuiso" role="37wK5m">
<node concept="37vLTw" id="6OXbTDxuisp" role="3uHU7w">
<ref role="3cqZAo" node="Hg6Enc4Wb5" resolve="nameHint" />
</node>
<node concept="Xl_RD" id="6OXbTDxuisq" role="3uHU7B">
<property role="Xl_RC" value="types_" />
</node>
</node>
<node concept="2OqwBi" id="7DvO2M9pC8F" role="37wK5m">
<node concept="Xjq3P" id="7DvO2M9pC8G" role="2Oq$k0" />
<node concept="2OwXpG" id="7DvO2M9pC8H" role="2OqNvi">
@ -4728,20 +4766,15 @@
</node>
<node concept="2OqwBi" id="7kTeLbPtIoW" role="37vLTx">
<node concept="37vLTw" id="7kTeLbPtIoX" role="2Oq$k0">
<ref role="3cqZAo" node="3GlpCDSzA$E" resolve="programBuilder" />
<ref role="3cqZAo" node="3GlpCDSzA$E" resolve="programProducer" />
</node>
<node concept="liA8E" id="7kTeLbPtIoY" role="2OqNvi">
<ref role="37wK5l" to="hano:7kTeLbPojCz" resolve="forEach" />
<ref role="37wK5l" to="hano:7kTeLbPojCz" resolve="produce" />
<node concept="37vLTw" id="7kTeLbPtKEF" role="37wK5m">
<ref role="3cqZAo" node="7kTeLbPt5$3" resolve="nodes" />
</node>
<node concept="3cpWs3" id="7kTeLbPtIp0" role="37wK5m">
<node concept="37vLTw" id="7kTeLbPtIp1" role="3uHU7w">
<ref role="3cqZAo" node="Hg6Enc4Wb5" resolve="nameHint" />
</node>
<node concept="Xl_RD" id="7kTeLbPtIp2" role="3uHU7B">
<property role="Xl_RC" value="types_" />
</node>
<node concept="37vLTw" id="6OXbTDxOms3" role="37wK5m">
<ref role="3cqZAo" node="6OXbTDxIg00" resolve="queryParameter" />
</node>
</node>
</node>
@ -4845,8 +4878,8 @@
<node concept="2tJIrI" id="7WKNeR9kCIM" role="jymVt" />
<node concept="3clFb_" id="7WKNeR9kDKp" role="jymVt">
<property role="TrG5h" value="queryTemplate" />
<node concept="3uibUv" id="7WKNeR9kEIG" role="3clF45">
<ref role="3uigEE" to="i348:7P_FdVPs4aA" resolve="QueryTemplate" />
<node concept="3uibUv" id="6OXbTD$pWcW" role="3clF45">
<ref role="3uigEE" to="i348:6OXbTD$iNPP" resolve="QueryTemplate" />
</node>
<node concept="3Tm1VV" id="7WKNeR9kDKs" role="1B3o_S" />
<node concept="3clFbS" id="7WKNeR9kDKt" role="3clF47">
@ -4873,7 +4906,7 @@
<node concept="3clFbF" id="4QPCta1h7tZ" role="3cqZAp">
<node concept="2OqwBi" id="4QPCta1h7Ik" role="3clFbG">
<node concept="37vLTw" id="4QPCta1h7tY" role="2Oq$k0">
<ref role="3cqZAo" node="3GlpCDSzA$E" resolve="programBuilder" />
<ref role="3cqZAo" node="3GlpCDSzA$E" resolve="programProducer" />
</node>
<node concept="liA8E" id="4QPCta1h7Ts" role="2OqNvi">
<ref role="37wK5l" to="hano:3GlpCDSyO$P" resolve="getPrograms" />
@ -4904,15 +4937,15 @@
<node concept="312cEg" id="7WKNeR9kv7q" role="jymVt">
<property role="TrG5h" value="queryTemplate" />
<node concept="3Tm6S6" id="7WKNeR9kv7o" role="1B3o_S" />
<node concept="3uibUv" id="7WKNeR9kv7p" role="1tU5fm">
<ref role="3uigEE" to="i348:7P_FdVPs4aA" resolve="QueryTemplate" />
<node concept="3uibUv" id="6OXbTD$kGXo" role="1tU5fm">
<ref role="3uigEE" to="i348:6OXbTD$iNPP" resolve="QueryTemplate" />
</node>
</node>
<node concept="312cEg" id="3GlpCDSzA$E" role="jymVt">
<property role="TrG5h" value="programBuilder" />
<property role="TrG5h" value="programProducer" />
<node concept="3Tm6S6" id="6kREIVkHEOZ" role="1B3o_S" />
<node concept="3uibUv" id="3GlpCDSzA$D" role="1tU5fm">
<ref role="3uigEE" to="hano:3GlpCDSxTG7" resolve="ProgramBuilder" />
<ref role="3uigEE" to="hano:3GlpCDSxTG7" resolve="ProgramProducer" />
</node>
</node>
<node concept="312cEg" id="6kREIVkLEGt" role="jymVt">
@ -4927,6 +4960,15 @@
<node concept="3Tm6S6" id="7WKNeR9fj4g" role="1B3o_S" />
<node concept="17QB3L" id="7WKNeR9fj4i" role="1tU5fm" />
</node>
<node concept="312cEg" id="6OXbTDxIg00" role="jymVt">
<property role="TrG5h" value="queryParameter" />
<node concept="3Tm6S6" id="6OXbTDxIg01" role="1B3o_S" />
<node concept="10Q1$e" id="6OXbTDxIhw6" role="1tU5fm">
<node concept="3uibUv" id="6OXbTDxIg04" role="10Q1$1">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
</node>
<node concept="312cEu" id="7nPD14NbIif">
<property role="TrG5h" value="MultiTrace" />
@ -6076,7 +6118,40 @@
</node>
</node>
</node>
<node concept="3clFbH" id="443LGHBTRIR" role="3cqZAp" />
<node concept="3clFbH" id="6OXbTD_AGUa" role="3cqZAp" />
<node concept="3SKdUt" id="6OXbTD_AKjZ" role="3cqZAp">
<node concept="3SKdUq" id="6OXbTD_AKk1" role="3SKWNk">
<property role="3SKdUp" value="TODO: need a direct link to the query" />
</node>
</node>
<node concept="3clFbH" id="6OXbTD_AY$T" role="3cqZAp" />
<node concept="1X3_iC" id="6OXbTD_AJ6F" role="lGtFl">
<property role="3V$3am" value="statement" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
<node concept="3cpWs8" id="6OXbTD_Apwe" role="8Wnug">
<node concept="3cpWsn" id="6OXbTD_Apwf" role="3cpWs9">
<property role="TrG5h" value="queryNode" />
<node concept="2sp9CU" id="6OXbTD_Apwd" role="1tU5fm">
<ref role="2sp9C9" to="wq2x:6OXbTD$dU7b" resolve="Query" />
</node>
<node concept="2tJFMh" id="6OXbTD_Apwg" role="33vP2m">
<node concept="ZC_QK" id="6OXbTD_Apwh" role="2tJFKM">
<ref role="2aWVGs" to="kqnc:6OXbTD$fto2" resolve="typecheck" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="6OXbTD_A30I" role="3cqZAp">
<node concept="3cpWsn" id="6OXbTD_A30J" role="3cpWs9">
<property role="TrG5h" value="queryFqname" />
<node concept="17QB3L" id="6OXbTD_A30G" role="1tU5fm" />
<node concept="Xl_RD" id="6OXbTD_AFOY" role="33vP2m">
<property role="Xl_RC" value="jetbrains.mps.baseLanguageExt.types.typecheck" />
</node>
</node>
</node>
<node concept="3clFbH" id="6OXbTD__XSd" role="3cqZAp" />
<node concept="3cpWs8" id="7y50OW6XU81" role="3cqZAp">
<node concept="3cpWsn" id="7y50OW6XU82" role="3cpWs9">
<property role="TrG5h" value="helper" />
@ -6085,13 +6160,21 @@
</node>
<node concept="2YIFZM" id="2Qe6u2c7U1p" role="33vP2m">
<ref role="1Pybhc" node="1N_0WA5JxZO" resolve="TestLaunchTypechecking" />
<ref role="37wK5l" node="2Qe6u2c7U1k" resolve="helper" />
<node concept="37vLTw" id="2Qe6u2c7U1n" role="37wK5m">
<ref role="3cqZAo" node="7smgEqg8tfa" resolve="root" />
<ref role="37wK5l" node="2Qe6u2c8aJv" resolve="helper" />
<node concept="2ShNRf" id="6OXbTD__WV5" role="37wK5m">
<node concept="Tc6Ow" id="6OXbTD__WV6" role="2ShVmc">
<node concept="3Tqbb2" id="6OXbTD__WV7" role="HW$YZ" />
<node concept="37vLTw" id="6OXbTD__Xdf" role="HW$Y0">
<ref role="3cqZAo" node="7smgEqg8tfa" resolve="root" />
</node>
</node>
</node>
<node concept="37vLTw" id="2Qe6u2c7U1o" role="37wK5m">
<ref role="3cqZAo" node="443LGHBTRnR" resolve="repository" />
</node>
<node concept="37vLTw" id="6OXbTD_A8RK" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_A30J" resolve="queryFqname" />
</node>
</node>
</node>
</node>
@ -6236,6 +6319,9 @@
<node concept="37vLTw" id="2Qe6u2c8hlW" role="37wK5m">
<ref role="3cqZAo" node="443LGHBTRnR" resolve="repository" />
</node>
<node concept="37vLTw" id="6OXbTD_A9ie" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_A30J" resolve="queryFqname" />
</node>
</node>
<node concept="37vLTw" id="2Qe6u2c9dcK" role="37vLTJ">
<ref role="3cqZAo" node="2Qe6u2c8ezt" resolve="helper2" />
@ -6581,99 +6667,6 @@
</node>
</node>
<node concept="2tJIrI" id="2Qe6u2c7Uvv" role="jymVt" />
<node concept="2YIFZL" id="2Qe6u2c7U1k" role="jymVt">
<property role="TrG5h" value="helper" />
<node concept="3Tm6S6" id="2Qe6u2c7U1l" role="1B3o_S" />
<node concept="3uibUv" id="2Qe6u2c7U1m" role="3clF45">
<ref role="3uigEE" node="1pPth$l_TFV" resolve="TypecheckingHelper" />
</node>
<node concept="37vLTG" id="2Qe6u2c7U1a" role="3clF46">
<property role="TrG5h" value="root" />
<node concept="3Tqbb2" id="2Qe6u2c7U1b" role="1tU5fm" />
</node>
<node concept="37vLTG" id="2Qe6u2c7U1c" role="3clF46">
<property role="TrG5h" value="repository" />
<node concept="3uibUv" id="2Qe6u2c7U1d" role="1tU5fm">
<ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
</node>
</node>
<node concept="3clFbS" id="2Qe6u2c7U0E" role="3clF47">
<node concept="3cpWs8" id="2Qe6u2c7U0H" role="3cqZAp">
<node concept="3cpWsn" id="2Qe6u2c7U0I" role="3cpWs9">
<property role="TrG5h" value="applyTemplatesStep" />
<node concept="3uibUv" id="2Qe6u2c7U0J" role="1tU5fm">
<ref role="3uigEE" node="1pPth$lAwc0" resolve="ApplyTemplatesStep" />
</node>
<node concept="2ShNRf" id="2Qe6u2c7U0K" role="33vP2m">
<node concept="1pGfFk" id="2Qe6u2c7U0L" role="2ShVmc">
<ref role="37wK5l" node="7kTeLbPt4na" resolve="ApplyTemplatesStep" />
<node concept="2ShNRf" id="3IIf9O_rFsk" role="37wK5m">
<node concept="Tc6Ow" id="3IIf9O_rGw7" role="2ShVmc">
<node concept="3Tqbb2" id="3IIf9O_rHIs" role="HW$YZ" />
<node concept="37vLTw" id="3IIf9O_rJ6J" role="HW$Y0">
<ref role="3cqZAo" node="2Qe6u2c7U1a" resolve="root" />
</node>
</node>
</node>
<node concept="37vLTw" id="2Qe6u2c7U1f" role="37wK5m">
<ref role="3cqZAo" node="2Qe6u2c7U1c" resolve="repository" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="2Qe6u2c7U0O" role="3cqZAp">
<node concept="3cpWsn" id="2Qe6u2c7U0P" role="3cpWs9">
<property role="TrG5h" value="evaluateRulesStep" />
<property role="3TUv4t" value="false" />
<node concept="3uibUv" id="2Qe6u2c7U0Q" role="1tU5fm">
<ref role="3uigEE" node="1pPth$lBNWG" resolve="EvaluateRulesStep" />
</node>
<node concept="2ShNRf" id="2Qe6u2c7U0R" role="33vP2m">
<node concept="1pGfFk" id="2Qe6u2c7U0S" role="2ShVmc">
<ref role="37wK5l" node="1pPth$lHpLU" resolve="EvaluateRulesStep" />
<node concept="37vLTw" id="2Qe6u2c7U1h" role="37wK5m">
<ref role="3cqZAo" node="2Qe6u2c7U1c" resolve="repository" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="2Qe6u2c7U0U" role="3cqZAp">
<node concept="3cpWsn" id="2Qe6u2c7U0V" role="3cpWs9">
<property role="TrG5h" value="collectTypesStep" />
<node concept="3uibUv" id="2Qe6u2c7U0W" role="1tU5fm">
<ref role="3uigEE" node="6IQb_RxlB9v" resolve="CollectTypesStep" />
</node>
<node concept="2ShNRf" id="2Qe6u2c7U0X" role="33vP2m">
<node concept="1pGfFk" id="2Qe6u2c7U0Y" role="2ShVmc">
<ref role="37wK5l" node="6IQb_RxlCdT" resolve="CollectTypesStep" />
<node concept="37vLTw" id="2Qe6u2c7U1e" role="37wK5m">
<ref role="3cqZAo" node="2Qe6u2c7U1c" resolve="repository" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs6" id="2Qe6u2c7U18" role="3cqZAp">
<node concept="2ShNRf" id="2Qe6u2c7U13" role="3cqZAk">
<node concept="1pGfFk" id="2Qe6u2c7U14" role="2ShVmc">
<ref role="37wK5l" node="443LGHBiDEV" resolve="TypecheckingHelper" />
<node concept="37vLTw" id="2Qe6u2c7U15" role="37wK5m">
<ref role="3cqZAo" node="2Qe6u2c7U0I" resolve="applyTemplatesStep" />
</node>
<node concept="37vLTw" id="2Qe6u2c7U16" role="37wK5m">
<ref role="3cqZAo" node="2Qe6u2c7U0P" resolve="evaluateRulesStep" />
</node>
<node concept="37vLTw" id="2Qe6u2c7U17" role="37wK5m">
<ref role="3cqZAo" node="2Qe6u2c7U0V" resolve="collectTypesStep" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2Qe6u2c7PEY" role="jymVt" />
<node concept="2YIFZL" id="2Qe6u2c8aJv" role="jymVt">
<property role="TrG5h" value="helper" />
<node concept="3Tm6S6" id="2Qe6u2c8aJw" role="1B3o_S" />
@ -6690,6 +6683,10 @@
<ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
</node>
</node>
<node concept="37vLTG" id="6OXbTD_A4DJ" role="3clF46">
<property role="TrG5h" value="queryFqname" />
<node concept="17QB3L" id="6OXbTD_A53L" role="1tU5fm" />
</node>
<node concept="3clFbS" id="2Qe6u2c8aJA" role="3clF47">
<node concept="3cpWs8" id="2Qe6u2c8aJB" role="3cqZAp">
<node concept="3cpWsn" id="2Qe6u2c8aJC" role="3cpWs9">
@ -6699,13 +6696,16 @@
</node>
<node concept="2ShNRf" id="2Qe6u2c8aJE" role="33vP2m">
<node concept="1pGfFk" id="2Qe6u2c8aJF" role="2ShVmc">
<ref role="37wK5l" node="7kTeLbPt4na" resolve="ApplyTemplatesStep" />
<ref role="37wK5l" node="7WKNeR9fh8j" resolve="ApplyTemplatesStep" />
<node concept="37vLTw" id="2Qe6u2c8aJG" role="37wK5m">
<ref role="3cqZAo" node="2Qe6u2c8aJy" resolve="nodes" />
</node>
<node concept="37vLTw" id="2Qe6u2c8aJH" role="37wK5m">
<ref role="3cqZAo" node="2Qe6u2c8aJ$" resolve="repository" />
</node>
<node concept="37vLTw" id="6OXbTD_A6xQ" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_A4DJ" resolve="queryFqname" />
</node>
</node>
</node>
</node>
@ -6762,9 +6762,6 @@
</node>
</node>
<node concept="2tJIrI" id="2Qe6u2c8aJu" role="jymVt" />
<node concept="2tJIrI" id="2Qe6u2c7PGO" role="jymVt" />
<node concept="2tJIrI" id="2Qe6u2c7PIF" role="jymVt" />
<node concept="2tJIrI" id="1N_0WA5Jy0_" role="jymVt" />
<node concept="3Tm1VV" id="1N_0WA5JxZP" role="1B3o_S" />
<node concept="3UR2Jj" id="443LGHBisnv" role="lGtFl">
<node concept="TZ5HA" id="443LGHBisnw" role="TZ5H$">

View File

@ -2725,5 +2725,109 @@
<node concept="3clFbS" id="34$A1Mf3_WA" role="2VODD2" />
</node>
</node>
<node concept="13h7C7" id="6OXbTDz3CCF">
<ref role="13h7C2" to="wq2x:7P_FdVQ_S6B" resolve="QueryTemplate" />
<node concept="13i0hz" id="6OXbTDz3CCQ" role="13h7CS">
<property role="13i0iv" value="false" />
<property role="13i0it" value="false" />
<property role="TrG5h" value="exportedLogicalVariable" />
<ref role="13i0hy" to="ha02:7E86$tKAujJ" resolve="exportedLogicalVariable" />
<node concept="3Tm1VV" id="6OXbTDz3CCR" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTDz3CCS" role="3clF47">
<node concept="3clFbF" id="6OXbTDz3CCT" role="3cqZAp">
<node concept="2OqwBi" id="6OXbTDz3CCU" role="3clFbG">
<node concept="2OqwBi" id="6OXbTDz3CCV" role="2Oq$k0">
<node concept="2OqwBi" id="6OXbTDz3CCW" role="2Oq$k0">
<node concept="2OqwBi" id="6OXbTDz3CCX" role="2Oq$k0">
<node concept="13iPFW" id="6OXbTDz3CCY" role="2Oq$k0" />
<node concept="3TrEf2" id="6OXbTDz3CCZ" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:6OXbTDyyU9U" resolve="code" />
</node>
</node>
<node concept="2Rf3mk" id="6OXbTDz3CD0" role="2OqNvi">
<node concept="1xMEDy" id="6OXbTDz3CD1" role="1xVPHs">
<node concept="chp4Y" id="6OXbTDz3CD2" role="ri$Ld">
<ref role="cht4Q" to="wq2x:36tQV5AmIt0" resolve="ConstraintRuleStatement" />
</node>
</node>
</node>
</node>
<node concept="13MTOL" id="6OXbTDz3CD3" role="2OqNvi">
<ref role="13MTZf" to="wq2x:36tQV5AmIt1" resolve="rule" />
</node>
</node>
<node concept="3goQfb" id="6OXbTDz3CD4" role="2OqNvi">
<node concept="1bVj0M" id="6OXbTDz3CD5" role="23t8la">
<node concept="3clFbS" id="6OXbTDz3CD6" role="1bW5cS">
<node concept="3clFbF" id="6OXbTDz3CD7" role="3cqZAp">
<node concept="2OqwBi" id="6OXbTDz3CD8" role="3clFbG">
<node concept="37vLTw" id="6OXbTDz3CD9" role="2Oq$k0">
<ref role="3cqZAo" node="6OXbTDz3CDb" resolve="it" />
</node>
<node concept="2qgKlT" id="6OXbTDz3CDa" role="2OqNvi">
<ref role="37wK5l" to="ha02:7E86$tKAujJ" resolve="exportedLogicalVariable" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6OXbTDz3CDb" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6OXbTDz3CDc" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="A3Dl8" id="6OXbTDz3CDd" role="3clF45">
<node concept="3Tqbb2" id="6OXbTDz3CDe" role="A3Ik2">
<ref role="ehGHo" to="5j4j:7E86$tKtfM3" resolve="LogicalVariableDeclaration" />
</node>
</node>
</node>
<node concept="13i0hz" id="6OXbTDz3CDf" role="13h7CS">
<property role="13i0iv" value="false" />
<property role="13i0it" value="false" />
<property role="TrG5h" value="availableLogicalVariable" />
<ref role="13i0hy" to="ha02:6YKq674fNYS" resolve="availableLogicalVariable" />
<node concept="3Tm1VV" id="6OXbTDz3CDg" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTDz3CDh" role="3clF47">
<node concept="3clFbF" id="6OXbTDz3CDi" role="3cqZAp">
<node concept="2OqwBi" id="6OXbTDz3CDj" role="3clFbG">
<node concept="13iPFW" id="6OXbTDz3CDk" role="2Oq$k0" />
<node concept="2qgKlT" id="6OXbTDz3CDl" role="2OqNvi">
<ref role="37wK5l" to="ha02:7E86$tKAujJ" resolve="exportedLogicalVariable" />
</node>
</node>
</node>
</node>
<node concept="A3Dl8" id="6OXbTDz3CDm" role="3clF45">
<node concept="3Tqbb2" id="6OXbTDz3CDn" role="A3Ik2">
<ref role="ehGHo" to="5j4j:7E86$tKtfM3" resolve="LogicalVariableDeclaration" />
</node>
</node>
</node>
<node concept="13i0hz" id="6OXbTDz3CDo" role="13h7CS">
<property role="TrG5h" value="localContextNames" />
<property role="13i0it" value="false" />
<property role="13i0iv" value="false" />
<node concept="3Tm1VV" id="6OXbTDz3CDp" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTDz3CDq" role="3clF47">
<node concept="3clFbF" id="6OXbTDz3CDr" role="3cqZAp">
<node concept="BsUDl" id="6OXbTDz3CDs" role="3clFbG">
<ref role="37wK5l" to="ha02:7E86$tKAujJ" resolve="exportedLogicalVariable" />
</node>
</node>
</node>
<node concept="A3Dl8" id="6OXbTDz3CDt" role="3clF45">
<node concept="3Tqbb2" id="6OXbTDz3CDu" role="A3Ik2">
<ref role="ehGHo" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
</node>
</node>
<node concept="13hLZK" id="6OXbTDz3CCG" role="13h7CW">
<node concept="3clFbS" id="6OXbTDz3CCH" role="2VODD2" />
</node>
</node>
</model>

View File

@ -6806,17 +6806,31 @@
</node>
</node>
<node concept="24kQdi" id="7P_FdVQ_S6G">
<ref role="1XX52x" to="wq2x:7P_FdVQ_S6B" resolve="Query" />
<ref role="1XX52x" to="wq2x:7P_FdVQ_S6B" resolve="QueryTemplate" />
<node concept="3EZMnI" id="7P_FdVQ_S6R" role="2wV5jI">
<node concept="PMmxH" id="7P_FdVQ_S6Y" role="3EZMnx">
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
</node>
<node concept="3F0A7n" id="7P_FdVQ_S77" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<node concept="ljvvj" id="3IIf9O_dj_X" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="6OXbTD$fGLE" role="3EZMnx">
<property role="3F0ifm" value="" />
<node concept="ljvvj" id="6OXbTD$fGLF" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="6OXbTD$fGJW" role="3EZMnx">
<property role="3F0ifm" value="stage:" />
</node>
<node concept="3F0A7n" id="6OXbTD$fGKx" role="3EZMnx">
<property role="1$x2rV" value="initial" />
<property role="1O74Pk" value="true" />
<ref role="1NtTu8" to="wq2x:6OXbTD$fGCg" resolve="stage" />
<node concept="ljvvj" id="6OXbTD$fGKI" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="l2Vlx" id="7P_FdVQ_S6U" role="2iSdaV" />
<node concept="3F0ifn" id="3IIf9O_dj_Z" role="3EZMnx">
<property role="3F0ifm" value="" />
@ -6824,19 +6838,38 @@
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3EZMnI" id="3IIf9O_djA8" role="3EZMnx">
<node concept="VPM3Z" id="3IIf9O_djAa" role="3F10Kt">
<node concept="3EZMnI" id="6OXbTDyyUaE" role="3EZMnx">
<node concept="VPM3Z" id="6OXbTDyyUaG" role="3F10Kt">
<property role="VOm3f" value="false" />
</node>
<node concept="3F0ifn" id="3IIf9O_djAo" role="3EZMnx">
<property role="3F0ifm" value="start:" />
<node concept="3F1sOY" id="6OXbTDyyUb0" role="3EZMnx">
<ref role="1NtTu8" to="wq2x:6OXbTDyyU9U" resolve="code" />
</node>
<node concept="3F1sOY" id="3IIf9O_djAu" role="3EZMnx">
<ref role="1NtTu8" to="wq2x:3IIf9O_dj_p" resolve="start" />
</node>
<node concept="l2Vlx" id="3IIf9O_djAd" role="2iSdaV" />
<node concept="l2Vlx" id="6OXbTDyyUaJ" role="2iSdaV" />
</node>
</node>
</node>
<node concept="24kQdi" id="6OXbTD$dU7D">
<ref role="1XX52x" to="wq2x:6OXbTD$dU7b" resolve="Query" />
<node concept="3EZMnI" id="6OXbTD$dU7F" role="2wV5jI">
<node concept="3F0A7n" id="6OXbTD$dU81" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
<node concept="ljvvj" id="6OXbTD$dU8h" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0ifn" id="6OXbTD$dU8b" role="3EZMnx">
<property role="3F0ifm" value="" />
<node concept="ljvvj" id="6OXbTD$dU8j" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F2HdR" id="6OXbTD$dU7M" role="3EZMnx">
<ref role="1NtTu8" to="wq2x:6OXbTD$dU7c" resolve="queryStage" />
<node concept="l2Vlx" id="6OXbTD$dU7O" role="2czzBx" />
</node>
<node concept="l2Vlx" id="6OXbTD$dU7I" role="2iSdaV" />
</node>
</node>
</model>

View File

@ -43,7 +43,9 @@
<child id="1071489727083" name="linkDeclaration" index="1TKVEi" />
<child id="1071489727084" name="propertyDeclaration" index="1TKVEl" />
</concept>
<concept id="1169125989551" name="jetbrains.mps.lang.structure.structure.InterfaceConceptDeclaration" flags="ig" index="PlHQZ" />
<concept id="1169125989551" name="jetbrains.mps.lang.structure.structure.InterfaceConceptDeclaration" flags="ig" index="PlHQZ">
<child id="1169127546356" name="extends" index="PrDN$" />
</concept>
<concept id="1169127622168" name="jetbrains.mps.lang.structure.structure.InterfaceConceptReference" flags="ig" index="PrWs8">
<reference id="1169127628841" name="intfc" index="PrY4T" />
</concept>
@ -1412,6 +1414,9 @@
<property role="20lbJX" value="1" />
<ref role="20lvS9" to="tpee:fzclF80" resolve="StatementList" />
</node>
<node concept="PrWs8" id="6OXbTDyHcSb" role="PzmwI">
<ref role="PrY4T" node="6OXbTDyHcuD" resolve="Template" />
</node>
<node concept="PrWs8" id="36tQV5AmIsC" role="PzmwI">
<ref role="PrY4T" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
</node>
@ -1591,18 +1596,54 @@
</node>
<node concept="1TIwiD" id="7P_FdVQ_S6B">
<property role="EcuMT" value="9035818301008609703" />
<property role="TrG5h" value="QueryTemplate" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="1TJgyi" id="6OXbTD$fGCg" role="1TKVEl">
<property role="IQ2nx" value="7871500063866800656" />
<property role="TrG5h" value="stage" />
<ref role="AX2Wp" to="tpck:fKAOsGN" resolve="string" />
</node>
<node concept="1TJgyj" id="6OXbTDyyU9U" role="1TKVEi">
<property role="IQ2ns" value="7871500063838282362" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="code" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" to="tpee:fzclF80" resolve="StatementList" />
</node>
<node concept="PrWs8" id="6OXbTDyHcHo" role="PzmwI">
<ref role="PrY4T" node="6OXbTDyHcuD" resolve="Template" />
</node>
<node concept="PrWs8" id="7P_FdVQ_S6O" role="PzmwI">
<ref role="PrY4T" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
</node>
<node concept="PrWs8" id="6OXbTDz3CC2" role="PzmwI">
<ref role="PrY4T" to="5j4j:7E86$tK$Rgo" resolve="LogicalVariableScope" />
</node>
<node concept="PrWs8" id="6OXbTDz3CCc" role="PzmwI">
<ref role="PrY4T" node="7IysFeBd3kI" resolve="ApplicationSessionParticipant" />
</node>
</node>
<node concept="PlHQZ" id="6OXbTDyHcuD">
<property role="EcuMT" value="7871500063840978857" />
<property role="TrG5h" value="Template" />
<node concept="PrWs8" id="6OXbTDyHcuE" role="PrDN$">
<ref role="PrY4T" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
</node>
</node>
<node concept="1TIwiD" id="6OXbTD$dU7b">
<property role="EcuMT" value="7871500063866331595" />
<property role="TrG5h" value="Query" />
<property role="19KtqR" value="true" />
<property role="34LRSv" value="query" />
<ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
<node concept="1TJgyj" id="3IIf9O_dj_p" role="1TKVEi">
<property role="IQ2ns" value="4300441339817179481" />
<node concept="1TJgyj" id="6OXbTD$dU7c" role="1TKVEi">
<property role="IQ2ns" value="7871500063866331596" />
<property role="20lmBu" value="aggregation" />
<property role="20kJfa" value="start" />
<property role="20lbJX" value="1" />
<ref role="20lvS9" node="6p0DfM0ang5" resolve="UserConstraint" />
<property role="20kJfa" value="queryStage" />
<property role="20lbJX" value="0..n" />
<ref role="20lvS9" node="7P_FdVQ_S6B" resolve="QueryTemplate" />
</node>
<node concept="PrWs8" id="7P_FdVQ_S6O" role="PzmwI">
<node concept="PrWs8" id="6OXbTD$dU7e" role="PzmwI">
<ref role="PrY4T" to="tpee:hCUYCKd" resolve="IValidIdentifier" />
</node>
</node>

View File

@ -11,7 +11,7 @@
<dependency reexport="false">a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)</dependency>
<dependency reexport="false">8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)</dependency>
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
<dependency reexport="false">bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)</dependency>
<dependency reexport="true">bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)</dependency>
<dependency reexport="true">da80355b-a098-4248-9ec8-70d10dd7e9af(jetbrains.mps.typechecking.reporting)</dependency>
</dependencies>
<languageVersions>

View File

@ -250,8 +250,8 @@
<property role="TrG5h" value="queryTemplates" />
<property role="1EzhhJ" value="true" />
<node concept="_YKpA" id="7P_FdVPtqGB" role="3clF45">
<node concept="3uibUv" id="7P_FdVPtr81" role="_ZDj9">
<ref role="3uigEE" node="7P_FdVPs4aA" resolve="QueryTemplate" />
<node concept="3uibUv" id="6OXbTD$jYJi" role="_ZDj9">
<ref role="3uigEE" node="6OXbTD$iNPP" resolve="QueryTemplate" />
</node>
</node>
<node concept="3Tm1VV" id="7P_FdVPtq82" role="1B3o_S" />
@ -905,21 +905,8 @@
<ref role="16sUi3" node="1ffsG7bUbY4" resolve="Token" />
</node>
<node concept="1rXfSq" id="7XdbJdyicoz" role="33vP2m">
<ref role="37wK5l" node="7XdbJdz5lDL" resolve="createToken" />
</node>
</node>
</node>
<node concept="3clFbF" id="7XdbJdyiehQ" role="3cqZAp">
<node concept="37vLTI" id="7XdbJdyifLD" role="3clFbG">
<node concept="37vLTw" id="7XdbJdyig4m" role="37vLTJ">
<ref role="3cqZAo" node="7XdbJdyicoy" resolve="token" />
</node>
<node concept="1rXfSq" id="7XdbJdyiehO" role="37vLTx">
<ref role="37wK5l" node="75vUFrSIQhr" resolve="initToken" />
<node concept="37vLTw" id="7XdbJdyifag" role="37wK5m">
<ref role="3cqZAo" node="7XdbJdyicoy" resolve="token" />
</node>
<node concept="37vLTw" id="7XdbJdyieIP" role="37wK5m">
<ref role="37wK5l" node="3IIf9OAJOPP" resolve="newToken" />
<node concept="37vLTw" id="mJ_D13ZSBm" role="37wK5m">
<ref role="3cqZAo" node="7XdbJdyi9Lh" resolve="input" />
</node>
</node>
@ -961,9 +948,6 @@
</node>
</node>
</node>
<node concept="2AHcQZ" id="7XdbJdyi9Lt" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="7XdbJdyiayM" role="jymVt" />
<node concept="3clFb_" id="7XdbJdyi9Lu" role="jymVt">
@ -992,21 +976,8 @@
<ref role="16sUi3" node="1ffsG7bUbY4" resolve="Token" />
</node>
<node concept="1rXfSq" id="7XdbJdyinIX" role="33vP2m">
<ref role="37wK5l" node="7XdbJdz5lDL" resolve="createToken" />
</node>
</node>
</node>
<node concept="3clFbF" id="7XdbJdyinIY" role="3cqZAp">
<node concept="37vLTI" id="7XdbJdyinIZ" role="3clFbG">
<node concept="37vLTw" id="7XdbJdyinJ0" role="37vLTJ">
<ref role="3cqZAo" node="7XdbJdyinIV" resolve="token" />
</node>
<node concept="1rXfSq" id="7XdbJdyinJ1" role="37vLTx">
<ref role="37wK5l" node="75vUFrSIQhr" resolve="initToken" />
<node concept="37vLTw" id="7XdbJdyinJ3" role="37wK5m">
<ref role="3cqZAo" node="7XdbJdyinIV" resolve="token" />
</node>
<node concept="37vLTw" id="7XdbJdyinJ2" role="37wK5m">
<ref role="37wK5l" node="3IIf9OAJOPP" resolve="newToken" />
<node concept="37vLTw" id="mJ_D13ZU0N" role="37wK5m">
<ref role="3cqZAo" node="7XdbJdyi9Ly" resolve="input" />
</node>
</node>
@ -1035,9 +1006,6 @@
</node>
</node>
</node>
<node concept="2AHcQZ" id="7XdbJdyi9LE" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="7XdbJdz5jXz" role="jymVt" />
<node concept="3clFb_" id="7XdbJdz5lDL" role="jymVt">
@ -1164,7 +1132,7 @@
<node concept="16euLQ" id="1ffsG7bUbY4" role="16eVyc">
<property role="TrG5h" value="Token" />
<node concept="3uibUv" id="7XdbJdy7jWi" role="3ztrMU">
<ref role="3uigEE" node="2RRx4MZ6_68" resolve="RuleTemplateApplicationToken" />
<ref role="3uigEE" node="2RRx4MZ6_68" resolve="RuleTemplateToken" />
</node>
</node>
<node concept="3uibUv" id="1ffsG7bWFot" role="EKbjA">
@ -1225,64 +1193,6 @@
<node concept="3Tm1VV" id="4MqhgXUndvs" role="1B3o_S" />
<node concept="3clFbS" id="4MqhgXUndvt" role="3clF47" />
</node>
<node concept="2tJIrI" id="7XdbJdyhO3t" role="jymVt" />
<node concept="3clFb_" id="7XdbJdyhRyL" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="applyReduce" />
<node concept="16syzq" id="7XdbJdyhZ4O" role="3clF45">
<ref role="16sUi3" node="7XdbJdyhY34" resolve="T" />
</node>
<node concept="3Tm1VV" id="7XdbJdyhRyO" role="1B3o_S" />
<node concept="3clFbS" id="7XdbJdyhRyP" role="3clF47" />
<node concept="37vLTG" id="7XdbJdyi5db" role="3clF46">
<property role="TrG5h" value="input" />
<node concept="3Tqbb2" id="7XdbJdyi5sw" role="1tU5fm" />
</node>
<node concept="37vLTG" id="7XdbJdyhY6X" role="3clF46">
<property role="TrG5h" value="init" />
<node concept="16syzq" id="7XdbJdyhYlg" role="1tU5fm">
<ref role="16sUi3" node="7XdbJdyhY34" resolve="T" />
</node>
</node>
<node concept="37vLTG" id="7XdbJdyhUPC" role="3clF46">
<property role="TrG5h" value="applyFun" />
<node concept="1ajhzC" id="7XdbJdyhUPA" role="1tU5fm">
<node concept="16syzq" id="7XdbJdyhYHj" role="1ajw0F">
<ref role="16sUi3" node="7XdbJdyhY34" resolve="T" />
</node>
<node concept="16syzq" id="7XdbJdyhVff" role="1ajw0F">
<ref role="16sUi3" node="1ffsG7bWA35" resolve="Token" />
</node>
<node concept="16syzq" id="7XdbJdyhYT4" role="1ajl9A">
<ref role="16sUi3" node="7XdbJdyhY34" resolve="T" />
</node>
</node>
</node>
<node concept="16euLQ" id="7XdbJdyhY34" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="7XdbJdyi7e7" role="jymVt" />
<node concept="3clFb_" id="7XdbJdyi6U_" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="apply" />
<node concept="3cqZAl" id="7XdbJdyi7Qa" role="3clF45" />
<node concept="3Tm1VV" id="7XdbJdyi6UB" role="1B3o_S" />
<node concept="3clFbS" id="7XdbJdyi6UC" role="3clF47" />
<node concept="37vLTG" id="7XdbJdyi6UD" role="3clF46">
<property role="TrG5h" value="input" />
<node concept="3Tqbb2" id="7XdbJdyi6UE" role="1tU5fm" />
</node>
<node concept="37vLTG" id="7XdbJdyi6UH" role="3clF46">
<property role="TrG5h" value="applyFun" />
<node concept="1ajhzC" id="7XdbJdyi6UI" role="1tU5fm">
<node concept="16syzq" id="7XdbJdyi6UK" role="1ajw0F">
<ref role="16sUi3" node="1ffsG7bWA35" resolve="Token" />
</node>
<node concept="3cqZAl" id="7XdbJdyi8nK" role="1ajl9A" />
</node>
</node>
</node>
<node concept="2tJIrI" id="PB1R3YsIZx" role="jymVt" />
<node concept="3clFb_" id="6i42QSs8m5b" role="jymVt">
<property role="1EzhhJ" value="true" />
@ -1293,12 +1203,30 @@
<node concept="3Tm1VV" id="6i42QSs8m5e" role="1B3o_S" />
<node concept="3clFbS" id="6i42QSs8m5f" role="3clF47" />
</node>
<node concept="2tJIrI" id="3IIf9OAJNDf" role="jymVt" />
<node concept="3clFb_" id="3IIf9OAJOPP" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="newToken" />
<node concept="37vLTG" id="3IIf9OAJRcv" role="3clF46">
<property role="TrG5h" value="input" />
<node concept="8X2XB" id="3IIf9OAJSqg" role="1tU5fm">
<node concept="3uibUv" id="3IIf9OAJS3D" role="8Xvag">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
<node concept="16syzq" id="3IIf9OAJQ56" role="3clF45">
<ref role="16sUi3" node="1ffsG7bWA35" resolve="Token" />
</node>
<node concept="3Tm1VV" id="3IIf9OAJOPS" role="1B3o_S" />
<node concept="3clFbS" id="3IIf9OAJOPT" role="3clF47" />
</node>
<node concept="2tJIrI" id="6i42QSs8m2v" role="jymVt" />
<node concept="3Tm1VV" id="1ffsG7bW_V5" role="1B3o_S" />
<node concept="16euLQ" id="1ffsG7bWA35" role="16eVyc">
<property role="TrG5h" value="Token" />
<node concept="3uibUv" id="7XdbJdy67uN" role="3ztrMU">
<ref role="3uigEE" node="2RRx4MZ6_68" resolve="RuleTemplateApplicationToken" />
<ref role="3uigEE" node="2RRx4MZ6_68" resolve="RuleTemplateToken" />
</node>
</node>
</node>
@ -1418,27 +1346,14 @@
<ref role="16sUi3" node="1ffsG7bX2zU" resolve="Token" />
</node>
<node concept="1rXfSq" id="7XdbJdyiHdn" role="33vP2m">
<ref role="37wK5l" node="7XdbJdz5lDL" resolve="createToken" />
</node>
</node>
</node>
<node concept="3clFbF" id="5wZaC7Xy9pq" role="3cqZAp">
<node concept="37vLTI" id="5wZaC7Xy9pr" role="3clFbG">
<node concept="37vLTw" id="5wZaC7Xy9ps" role="37vLTJ">
<ref role="3cqZAo" node="7XdbJdyiBPP" resolve="token" />
</node>
<node concept="1rXfSq" id="5wZaC7Xy9pt" role="37vLTx">
<ref role="37wK5l" node="7XdbJdz9vbo" resolve="initToken" />
<node concept="37vLTw" id="5wZaC7Xy9pw" role="37wK5m">
<ref role="3cqZAo" node="7XdbJdyiBPP" resolve="token" />
</node>
<node concept="37vLTw" id="5wZaC7Xy9pu" role="37wK5m">
<ref role="37wK5l" node="3IIf9OAJOPP" resolve="newToken" />
<node concept="37vLTw" id="mJ_D13ZP76" role="37wK5m">
<ref role="3cqZAo" node="7XdbJdyiuF2" resolve="input" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="7XdbJdyiVvC" role="3cqZAp" />
<node concept="3clFbH" id="mJ_D14cdrg" role="3cqZAp" />
<node concept="1DcWWT" id="7XdbJdyiAvZ" role="3cqZAp">
<node concept="3clFbS" id="7XdbJdyiAw0" role="2LFqv$">
<node concept="3SKdUt" id="7XdbJdyiBPM" role="3cqZAp">
@ -1550,21 +1465,8 @@
<ref role="16sUi3" node="1ffsG7bX2zU" resolve="Token" />
</node>
<node concept="1rXfSq" id="7XdbJdyiVDI" role="33vP2m">
<ref role="37wK5l" node="7XdbJdz5lDL" resolve="createToken" />
</node>
</node>
</node>
<node concept="3clFbF" id="5wZaC7XycOO" role="3cqZAp">
<node concept="37vLTI" id="5wZaC7XycOP" role="3clFbG">
<node concept="37vLTw" id="5wZaC7XycOQ" role="37vLTJ">
<ref role="3cqZAo" node="7XdbJdyiVDG" resolve="token" />
</node>
<node concept="1rXfSq" id="5wZaC7XycOR" role="37vLTx">
<ref role="37wK5l" node="7XdbJdz9vbo" resolve="initToken" />
<node concept="37vLTw" id="5wZaC7XycOU" role="37wK5m">
<ref role="3cqZAo" node="7XdbJdyiVDG" resolve="token" />
</node>
<node concept="37vLTw" id="5wZaC7XycOS" role="37wK5m">
<ref role="37wK5l" node="3IIf9OAJOPP" resolve="newToken" />
<node concept="37vLTw" id="mJ_D13ZQKZ" role="37wK5m">
<ref role="3cqZAo" node="7XdbJdyiuFB" resolve="input" />
</node>
</node>
@ -1806,6 +1708,7 @@
<node concept="A3Dl8" id="4MqhgXUaiPw" role="3clF45">
<node concept="3uibUv" id="4MqhgXUaiPX" role="A3Ik2">
<ref role="3uigEE" node="1ffsG7bW_V4" resolve="RuleTemplate" />
<node concept="3qTvmN" id="6OXbTD$GpJw" role="11_B2D" />
</node>
</node>
<node concept="3Tm1VV" id="4MqhgXUaiOQ" role="1B3o_S" />
@ -1815,7 +1718,7 @@
<node concept="3Tm1VV" id="4MqhgXU9fm4" role="1B3o_S" />
</node>
<node concept="3HP615" id="2RRx4MZ6_68">
<property role="TrG5h" value="RuleTemplateApplicationToken" />
<property role="TrG5h" value="RuleTemplateToken" />
<property role="3GE5qa" value="ruleTemplate.token" />
<node concept="2tJIrI" id="2RRx4MZSLs8" role="jymVt" />
<node concept="3clFb_" id="2RRx4MZ6CBV" role="jymVt">
@ -1852,9 +1755,15 @@
</node>
<node concept="3Tm1VV" id="2RRx4MZ6CCn" role="1B3o_S" />
<node concept="3clFbS" id="2RRx4MZ6CCo" role="3clF47" />
<node concept="2AHcQZ" id="mJ_D14wp18" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="2RRx4MZ6CBN" role="jymVt" />
<node concept="3Tm1VV" id="2RRx4MZ6_69" role="1B3o_S" />
<node concept="3uibUv" id="mJ_D14woTd" role="3HQHJm">
<ref role="3uigEE" node="mJ_D14woL$" resolve="TemplateToken" />
</node>
</node>
<node concept="312cEu" id="2RRx4MZ6I3W">
<property role="TrG5h" value="BaseRuleTemplateApplicationToken" />
@ -1897,7 +1806,7 @@
<node concept="2tJIrI" id="2RRx4MZ6IJC" role="jymVt" />
<node concept="3Tm1VV" id="2RRx4MZ6I3X" role="1B3o_S" />
<node concept="3uibUv" id="2RRx4MZ6I8M" role="EKbjA">
<ref role="3uigEE" node="2RRx4MZ6_68" resolve="RuleTemplateApplicationToken" />
<ref role="3uigEE" node="2RRx4MZ6_68" resolve="RuleTemplateToken" />
</node>
</node>
<node concept="3HP615" id="23fvq3KaSFM">
@ -1918,7 +1827,7 @@
<node concept="2tJIrI" id="23fvq3KaT8y" role="jymVt" />
<node concept="3Tm1VV" id="23fvq3KaSFN" role="1B3o_S" />
<node concept="3uibUv" id="23fvq3KaSPQ" role="3HQHJm">
<ref role="3uigEE" node="2RRx4MZ6_68" resolve="RuleTemplateApplicationToken" />
<ref role="3uigEE" node="2RRx4MZ6_68" resolve="RuleTemplateToken" />
</node>
<node concept="16euLQ" id="23fvq3KaTe2" role="16eVyc">
<property role="TrG5h" value="Iter" />
@ -1995,34 +1904,192 @@
<node concept="3Tm1VV" id="36tQV5AurZX" role="1B3o_S" />
</node>
<node concept="3HP615" id="7P_FdVPs4aA">
<property role="TrG5h" value="QueryTemplate" />
<property role="TrG5h" value="QueryStageTemplate" />
<node concept="2tJIrI" id="7P_FdVPs4b8" role="jymVt" />
<node concept="3clFb_" id="7P_FdVQ_scW" role="jymVt">
<node concept="3clFb_" id="6OXbTD$oRWJ" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="2aFKle" value="false" />
<property role="TrG5h" value="stageName" />
<node concept="3clFbS" id="6OXbTD$oRWM" role="3clF47" />
<node concept="3Tm1VV" id="6OXbTD$oRWN" role="1B3o_S" />
<node concept="17QB3L" id="6OXbTD$oRqh" role="3clF45" />
</node>
<node concept="2tJIrI" id="6OXbTD$oQQW" role="jymVt" />
<node concept="3clFb_" id="mJ_D14Alpb" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="newToken" />
<node concept="37vLTG" id="mJ_D14AlJJ" role="3clF46">
<property role="TrG5h" value="parameter" />
<node concept="8X2XB" id="mJ_D14AlWD" role="1tU5fm">
<node concept="3uibUv" id="mJ_D14AlQr" role="8Xvag">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
<node concept="16syzq" id="mJ_D14Alxk" role="3clF45">
<ref role="16sUi3" node="mJ_D14AkFa" resolve="Token" />
</node>
<node concept="3Tm1VV" id="mJ_D14Alpe" role="1B3o_S" />
<node concept="3clFbS" id="mJ_D14Alpf" role="3clF47" />
</node>
<node concept="2tJIrI" id="7P_FdVQ_jBm" role="jymVt" />
<node concept="3Tm1VV" id="7P_FdVPs4aB" role="1B3o_S" />
<node concept="16euLQ" id="mJ_D14AkFa" role="16eVyc">
<property role="TrG5h" value="Token" />
<node concept="3uibUv" id="mJ_D14Ald9" role="3ztrMU">
<ref role="3uigEE" node="mJ_D14woL$" resolve="TemplateToken" />
</node>
</node>
</node>
<node concept="312cEu" id="7P_FdVPsPNk">
<property role="3GE5qa" value="ruleTemplate" />
<property role="TrG5h" value="BaseQueryStageTemplate" />
<property role="1sVAO0" value="true" />
<node concept="2tJIrI" id="6OXbTDz035d" role="jymVt" />
<node concept="3clFbW" id="6OXbTDz039g" role="jymVt">
<node concept="37vLTG" id="6OXbTDz03ly" role="3clF46">
<property role="TrG5h" value="templateRef" />
<node concept="3uibUv" id="6OXbTDz03q5" role="1tU5fm">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
</node>
<node concept="3cqZAl" id="6OXbTDz039i" role="3clF45" />
<node concept="3Tm1VV" id="6OXbTDz039j" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTDz039k" role="3clF47">
<node concept="3clFbF" id="6OXbTDz03UI" role="3cqZAp">
<node concept="37vLTI" id="6OXbTDz03UJ" role="3clFbG">
<node concept="2OqwBi" id="6OXbTDz03UK" role="37vLTJ">
<node concept="Xjq3P" id="6OXbTDz03UL" role="2Oq$k0" />
<node concept="2OwXpG" id="6OXbTDz03UM" role="2OqNvi">
<ref role="2Oxat5" node="6OXbTDz03H0" resolve="templateRef" />
</node>
</node>
<node concept="37vLTw" id="6OXbTDz03UN" role="37vLTx">
<ref role="3cqZAo" node="6OXbTDz03ly" resolve="templateRef" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="6OXbTDz03CP" role="jymVt" />
<node concept="3clFb_" id="6OXbTDz054k" role="jymVt">
<property role="TrG5h" value="templateRef" />
<node concept="3uibUv" id="6OXbTDz05bG" role="3clF45">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tm1VV" id="6OXbTDz054n" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTDz054o" role="3clF47">
<node concept="3clFbF" id="6OXbTDz05BR" role="3cqZAp">
<node concept="37vLTw" id="6OXbTDz05BQ" role="3clFbG">
<ref role="3cqZAo" node="6OXbTDz03H0" resolve="templateRef" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="6OXbTDz047G" role="jymVt" />
<node concept="312cEg" id="6OXbTDz03H0" role="jymVt">
<property role="TrG5h" value="templateRef" />
<node concept="3Tm6S6" id="6OXbTDz03H1" role="1B3o_S" />
<node concept="3uibUv" id="6OXbTDz03H2" role="1tU5fm">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
</node>
<node concept="3Tm1VV" id="7P_FdVPsPNl" role="1B3o_S" />
<node concept="3uibUv" id="7P_FdVPsPOy" role="EKbjA">
<ref role="3uigEE" node="7P_FdVPs4aA" resolve="QueryStageTemplate" />
<node concept="16syzq" id="mJ_D14ApBL" role="11_B2D">
<ref role="16sUi3" node="mJ_D14ApAA" resolve="Token" />
</node>
</node>
<node concept="16euLQ" id="mJ_D14ApAA" role="16eVyc">
<property role="TrG5h" value="Token" />
<node concept="3uibUv" id="mJ_D14ApBe" role="3ztrMU">
<ref role="3uigEE" node="mJ_D14woL$" resolve="TemplateToken" />
</node>
</node>
</node>
<node concept="3HP615" id="mJ_D14woL$">
<property role="3GE5qa" value="ruleTemplate.token" />
<property role="TrG5h" value="TemplateToken" />
<node concept="2tJIrI" id="mJ_D14woOn" role="jymVt" />
<node concept="3clFb_" id="mJ_D14woVW" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="apply" />
<node concept="A3Dl8" id="mJ_D14woVX" role="3clF45">
<node concept="3uibUv" id="mJ_D14woVY" role="A3Ik2">
<ref role="3uigEE" to="6pyv:7eGEHDlc$ap" resolve="RuleBuilder" />
</node>
</node>
<node concept="37vLTG" id="mJ_D14woVZ" role="3clF46">
<property role="TrG5h" value="session" />
<node concept="3uibUv" id="mJ_D14woW0" role="1tU5fm">
<ref role="3uigEE" to="psr6:18kNIl1vDPZ" resolve="AbstractMacroProcessing" />
</node>
</node>
<node concept="3Tm1VV" id="mJ_D14woW1" role="1B3o_S" />
<node concept="3clFbS" id="mJ_D14woW2" role="3clF47" />
</node>
<node concept="2tJIrI" id="mJ_D14woOp" role="jymVt" />
<node concept="3Tm1VV" id="mJ_D14woL_" role="1B3o_S" />
</node>
<node concept="3HP615" id="6OXbTD$iNPP">
<property role="3GE5qa" value="ruleTemplate" />
<property role="TrG5h" value="QueryTemplate" />
<node concept="2tJIrI" id="6OXbTD$iO0e" role="jymVt" />
<node concept="3clFb_" id="6OXbTD$iO0w" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="name" />
<node concept="17QB3L" id="7P_FdVQ_seW" role="3clF45" />
<node concept="3Tm1VV" id="7P_FdVQ_scZ" role="1B3o_S" />
<node concept="3clFbS" id="7P_FdVQ_sd0" role="3clF47" />
<node concept="17QB3L" id="6OXbTD$iO0x" role="3clF45" />
<node concept="3Tm1VV" id="6OXbTD$iO0y" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTD$iO0z" role="3clF47" />
</node>
<node concept="2tJIrI" id="7P_FdVQ_sbr" role="jymVt" />
<node concept="3clFb_" id="7WKNeR94Np2" role="jymVt">
<node concept="2tJIrI" id="6OXbTD$iO0$" role="jymVt" />
<node concept="3clFb_" id="6OXbTD$iO0_" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="fqName" />
<node concept="17QB3L" id="7WKNeR94Np3" role="3clF45" />
<node concept="3Tm1VV" id="7WKNeR94Np4" role="1B3o_S" />
<node concept="3clFbS" id="7WKNeR94Np5" role="3clF47" />
<node concept="17QB3L" id="6OXbTD$iO0A" role="3clF45" />
<node concept="3Tm1VV" id="6OXbTD$iO0B" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTD$iO0C" role="3clF47" />
</node>
<node concept="2tJIrI" id="7WKNeR94NnR" role="jymVt" />
<node concept="3clFb_" id="7P_FdVQBl1a" role="jymVt">
<node concept="2tJIrI" id="6OXbTD$iO0D" role="jymVt" />
<node concept="3clFb_" id="6OXbTD$iO0E" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="usedHandlersFqNames" />
<node concept="_YKpA" id="7P_FdVQBl3q" role="3clF45">
<node concept="17QB3L" id="7P_FdVQBl3W" role="_ZDj9" />
<node concept="_YKpA" id="6OXbTD$iO0F" role="3clF45">
<node concept="17QB3L" id="6OXbTD$iO0G" role="_ZDj9" />
</node>
<node concept="3Tm1VV" id="7P_FdVQBl1d" role="1B3o_S" />
<node concept="3clFbS" id="7P_FdVQBl1e" role="3clF47" />
<node concept="3Tm1VV" id="6OXbTD$iO0H" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTD$iO0I" role="3clF47" />
</node>
<node concept="2tJIrI" id="7P_FdVPsPXb" role="jymVt" />
<node concept="2tJIrI" id="6OXbTD$iO0j" role="jymVt" />
<node concept="3clFb_" id="6OXbTD$jl18" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="stageTemplates" />
<node concept="A3Dl8" id="6OXbTD$jl19" role="3clF45">
<node concept="3uibUv" id="6OXbTD$jl3W" role="A3Ik2">
<ref role="3uigEE" node="7P_FdVPs4aA" resolve="QueryStageTemplate" />
<node concept="3qTvmN" id="6OXbTD$JJM1" role="11_B2D" />
</node>
</node>
<node concept="3Tm1VV" id="6OXbTD$jl1b" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTD$jl1c" role="3clF47" />
</node>
<node concept="2tJIrI" id="6OXbTD$oHqU" role="jymVt" />
<node concept="3clFb_" id="6OXbTD$oET6" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="stageTemplate" />
<node concept="37vLTG" id="6OXbTD$oIHv" role="3clF46">
<property role="TrG5h" value="stage" />
<node concept="17QB3L" id="6OXbTD$oII$" role="1tU5fm" />
</node>
<node concept="3uibUv" id="6OXbTD$oIFy" role="3clF45">
<ref role="3uigEE" node="7P_FdVPs4aA" resolve="QueryStageTemplate" />
</node>
<node concept="3Tm1VV" id="6OXbTD$oET9" role="1B3o_S" />
<node concept="3clFbS" id="6OXbTD$oETa" role="3clF47" />
</node>
<node concept="2tJIrI" id="6OXbTD$iO0n" role="jymVt" />
<node concept="3Tm1VV" id="6OXbTD$iNPQ" role="1B3o_S" />
<node concept="3clFb_" id="7P_FdVPsDM6" role="jymVt">
<property role="1EzhhJ" value="true" />
<property role="TrG5h" value="newQuery" />
@ -2045,7 +2112,7 @@
<node concept="3Tm1VV" id="7P_FdVPsDM9" role="1B3o_S" />
<node concept="3clFbS" id="7P_FdVPsDMa" role="3clF47" />
</node>
<node concept="2tJIrI" id="7P_FdVPsDA3" role="jymVt" />
<node concept="2tJIrI" id="6OXbTD$reMa" role="jymVt" />
<node concept="3HP615" id="7P_FdVPsDC0" role="jymVt">
<property role="2bfB8j" value="true" />
<property role="TrG5h" value="QueryConfigurable" />
@ -2072,7 +2139,7 @@
<node concept="2tJIrI" id="7P_FdVQ_p0D" role="jymVt" />
<node concept="3Tm1VV" id="7P_FdVPsDC1" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="7P_FdVPs4bh" role="jymVt" />
<node concept="2tJIrI" id="6OXbTD$reOi" role="jymVt" />
<node concept="3HP615" id="7P_FdVQ_k3b" role="jymVt">
<property role="2bfB8j" value="true" />
<property role="TrG5h" value="QueryObservable" />
@ -2093,7 +2160,7 @@
<node concept="2tJIrI" id="7P_FdVQ_oC2" role="jymVt" />
<node concept="3Tm1VV" id="7P_FdVQ_k3c" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="7P_FdVQ_k1I" role="jymVt" />
<node concept="2tJIrI" id="6OXbTD$reQr" role="jymVt" />
<node concept="3HP615" id="7P_FdVQ_jCo" role="jymVt">
<property role="2bfB8j" value="true" />
<property role="TrG5h" value="QueryObserver" />
@ -2146,18 +2213,6 @@
<node concept="2tJIrI" id="7P_FdVQ_jEt" role="jymVt" />
<node concept="3Tm1VV" id="7P_FdVQ_jCp" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="7P_FdVQ_jBm" role="jymVt" />
<node concept="3Tm1VV" id="7P_FdVPs4aB" role="1B3o_S" />
</node>
<node concept="312cEu" id="7P_FdVPsPNk">
<property role="3GE5qa" value="ruleTemplate" />
<property role="TrG5h" value="AbstractQueryTemplate" />
<property role="1sVAO0" value="true" />
<node concept="2tJIrI" id="7P_FdVPsPTr" role="jymVt" />
<node concept="3Tm1VV" id="7P_FdVPsPNl" role="1B3o_S" />
<node concept="3uibUv" id="7P_FdVPsPOy" role="EKbjA">
<ref role="3uigEE" node="7P_FdVPs4aA" resolve="QueryTemplate" />
</node>
</node>
</model>