Tentatively introduce TracePredicate to trace call/expand macros; MPSCR-137

This commit is contained in:
Fedor Isakov 2024-08-13 16:43:17 +02:00
parent 1392dcc8a1
commit 99c3fdf9d0
2 changed files with 832 additions and 0 deletions

View File

@ -143,6 +143,9 @@
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
<child id="1068431790190" name="initializer" index="33vP2m" />
</concept>
<concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
<property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
</concept>
<concept id="1109279763828" name="jetbrains.mps.baseLanguage.structure.TypeVariableDeclaration" flags="ng" index="16euLQ">
<child id="1214996921760" name="bound" index="3ztrMU" />
</concept>
@ -10493,6 +10496,210 @@
</node>
</node>
<node concept="3clFbH" id="5itBwM7X0hm" role="3cqZAp" />
<node concept="3clFbF" id="FQ_DIqq49e" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIqq5bt" role="3clFbG">
<node concept="liA8E" id="FQ_DIqq6ix" role="2OqNvi">
<ref role="37wK5l" to="ugy2:7eGEHDlc$aw" resolve="appendBody" />
<node concept="2OqwBi" id="FQ_DIqr2fo" role="37wK5m">
<node concept="2OqwBi" id="FQ_DIqqrZM" role="2Oq$k0">
<node concept="2ShNRf" id="FQ_DIqqgDP" role="2Oq$k0">
<node concept="1pGfFk" id="FQ_DIqqnlb" role="2ShVmc">
<property role="373rjd" value="true" />
<ref role="37wK5l" to="ugy2:4sSe4$oM2B4" resolve="PredicateBuilder" />
<node concept="10M0yZ" id="FQ_DIqWXYe" role="37wK5m">
<ref role="3cqZAo" to="tpfl:FQ_DIqWkmy" resolve="TRACE_SYM" />
<ref role="1PxDUh" to="tpfl:FQ_DIqWkm2" resolve="TemplateTracePredicate" />
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIqqsZI" role="2OqNvi">
<ref role="37wK5l" to="ugy2:4sSe4$oM2Bb" resolve="withArguments" />
<node concept="Xl_RD" id="FQ_DIqqFjM" role="37wK5m">
<property role="Xl_RC" value="call macro" />
</node>
<node concept="2YIFZM" id="FQ_DIqqX$H" role="37wK5m">
<ref role="37wK5l" to="w1kc:~SNodePointer.deserialize(java.lang.String)" resolve="deserialize" />
<ref role="1Pybhc" to="w1kc:~SNodePointer" resolve="SNodePointer" />
<node concept="Xl_RD" id="FQ_DIqqX$I" role="37wK5m">
<property role="Xl_RC" value="" />
<node concept="17Uvod" id="FQ_DIqqX$J" role="lGtFl">
<property role="2qtEX9" value="value" />
<property role="P4ACc" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1070475926800/1070475926801" />
<node concept="3zFVjK" id="FQ_DIqqX$K" role="3zH0cK">
<node concept="3clFbS" id="FQ_DIqqX$L" role="2VODD2">
<node concept="3cpWs8" id="FQ_DIr90ku" role="3cqZAp">
<node concept="3cpWsn" id="FQ_DIr90kv" role="3cpWs9">
<property role="TrG5h" value="origInput" />
<node concept="3Tqbb2" id="FQ_DIr8eFs" role="1tU5fm">
<ref role="ehGHo" to="wq2x:5itBwM7LtBf" resolve="CallMacroConstraint" />
</node>
<node concept="1PxgMI" id="FQ_DIr9kFP" role="33vP2m">
<property role="1BlNFB" value="true" />
<node concept="chp4Y" id="FQ_DIr9qZ$" role="3oSUPX">
<ref role="cht4Q" to="wq2x:5itBwM7LtBf" resolve="CallMacroConstraint" />
</node>
<node concept="2OqwBi" id="FQ_DIr90kw" role="1m5AlR">
<node concept="1iwH7S" id="FQ_DIr90kx" role="2Oq$k0" />
<node concept="12$id9" id="FQ_DIr90ky" role="2OqNvi">
<node concept="30H73N" id="FQ_DIr90kz" role="12$y8L" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="FQ_DIr9bTu" role="3cqZAp">
<node concept="3clFbS" id="FQ_DIr9bTw" role="3clFbx">
<node concept="3cpWs6" id="FQ_DIr8pQm" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIr8rRr" role="3cqZAk">
<node concept="2OqwBi" id="FQ_DIr8rRs" role="2Oq$k0">
<node concept="liA8E" id="FQ_DIr8rRt" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
<node concept="2JrnkZ" id="FQ_DIr8rRu" role="2Oq$k0">
<node concept="2OqwBi" id="FQ_DIr9xns" role="2JrQYb">
<node concept="37vLTw" id="FQ_DIr9xnv" role="2Oq$k0">
<ref role="3cqZAo" node="FQ_DIr90kv" resolve="origInput" />
</node>
<node concept="3TrEf2" id="FQ_DIr9xnw" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM7LtYS" resolve="template" />
</node>
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIr8rRw" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
</node>
</node>
</node>
<node concept="3clFbH" id="FQ_DIr9bTv" role="3cqZAp" />
</node>
<node concept="3y3z36" id="FQ_DIr9gUN" role="3clFbw">
<node concept="10Nm6u" id="FQ_DIr9jfn" role="3uHU7w" />
<node concept="37vLTw" id="FQ_DIr9d75" role="3uHU7B">
<ref role="3cqZAo" node="FQ_DIr90kv" resolve="origInput" />
</node>
</node>
<node concept="9aQIb" id="FQ_DIr9I4j" role="9aQIa">
<node concept="3clFbS" id="FQ_DIr9I4k" role="9aQI4">
<node concept="3cpWs8" id="FQ_DIra9E2" role="3cqZAp">
<node concept="3cpWsn" id="FQ_DIra9E3" role="3cpWs9">
<property role="TrG5h" value="asp" />
<node concept="3Tqbb2" id="FQ_DIra7ZX" role="1tU5fm">
<ref role="ehGHo" to="wq2x:7IysFeBd3kI" resolve="ApplicationSessionParticipant" />
</node>
<node concept="2OqwBi" id="FQ_DIra9E4" role="33vP2m">
<node concept="30H73N" id="FQ_DIra9E5" role="2Oq$k0" />
<node concept="2Xjw5R" id="FQ_DIra9E6" role="2OqNvi">
<node concept="1xMEDy" id="FQ_DIra9E7" role="1xVPHs">
<node concept="chp4Y" id="FQ_DIra9E8" role="ri$Ld">
<ref role="cht4Q" to="wq2x:7IysFeBd3kI" resolve="ApplicationSessionParticipant" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs6" id="FQ_DIrapbt" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIrajTM" role="3cqZAk">
<node concept="2OqwBi" id="FQ_DIraeBa" role="2Oq$k0">
<node concept="liA8E" id="FQ_DIraiNp" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
<node concept="2JrnkZ" id="FQ_DIraeBl" role="2Oq$k0">
<node concept="2OqwBi" id="FQ_DIrabAj" role="2JrQYb">
<node concept="1iwH7S" id="FQ_DIrabAk" role="2Oq$k0" />
<node concept="12$id9" id="FQ_DIrabAl" role="2OqNvi">
<node concept="37vLTw" id="FQ_DIraczV" role="12$y8L">
<ref role="3cqZAo" node="FQ_DIra9E3" resolve="asp" />
</node>
</node>
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIral6E" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIqr3Lx" role="2OqNvi">
<ref role="37wK5l" to="ugy2:5Nh6YP2eMER" resolve="toPredicate" />
<node concept="Xl_RD" id="FQ_DIqro7D" role="37wK5m">
<property role="Xl_RC" value="" />
<node concept="17Uvod" id="FQ_DIqro7E" role="lGtFl">
<property role="2qtEX9" value="value" />
<property role="P4ACc" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1070475926800/1070475926801" />
<node concept="3zFVjK" id="FQ_DIqro7F" role="3zH0cK">
<node concept="3clFbS" id="FQ_DIqro7G" role="2VODD2">
<node concept="3clFbF" id="FQ_DIqro7H" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIqro7I" role="3clFbG">
<node concept="2OqwBi" id="FQ_DIqro7J" role="2Oq$k0">
<node concept="2OqwBi" id="FQ_DIqro7K" role="2Oq$k0">
<node concept="2JrnkZ" id="FQ_DIqro7L" role="2Oq$k0">
<node concept="2OqwBi" id="FQ_DIqro7M" role="2JrQYb">
<node concept="1iwH7S" id="FQ_DIqro7N" role="2Oq$k0" />
<node concept="12$id9" id="FQ_DIqro7O" role="2OqNvi">
<node concept="30H73N" id="FQ_DIqro7P" role="12$y8L" />
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIqro7Q" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
</node>
<node concept="liA8E" id="FQ_DIqro7R" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNodeReference.getNodeId()" resolve="getNodeId" />
</node>
</node>
<node concept="liA8E" id="FQ_DIqro7S" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="FQ_DIqslf3" role="2Oq$k0">
<ref role="3cqZAo" node="5itBwM7X0h9" resolve="builder" />
<node concept="1sPUBX" id="FQ_DIqslf4" role="lGtFl">
<ref role="v9R2y" node="1L74NXE_$78" resolve="builder_variable" />
<node concept="3NFfHV" id="FQ_DIqslf5" role="1sPUBK">
<node concept="3clFbS" id="FQ_DIqslf6" role="2VODD2">
<node concept="3clFbF" id="FQ_DIqslf7" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIqslf8" role="3clFbG">
<node concept="30H73N" id="FQ_DIqslf9" role="2Oq$k0" />
<node concept="2Xjw5R" id="FQ_DIqslfa" role="2OqNvi">
<node concept="3gmYPX" id="FQ_DIqslfb" role="1xVPHs">
<node concept="3gn64h" id="FQ_DIqslfc" role="3gmYPZ">
<ref role="3gnhBz" to="wq2x:7IysFeBd3kI" resolve="ApplicationSessionParticipant" />
</node>
<node concept="3gn64h" id="FQ_DIqslfd" role="3gmYPZ">
<ref role="3gnhBz" to="tpee:fzclF7W" resolve="BaseMethodDeclaration" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="raruj" id="FQ_DIqqTZK" role="lGtFl" />
</node>
<node concept="3clFbF" id="5itBwM7X0lC" role="3cqZAp">
<node concept="2OqwBi" id="5itBwM7X0rl" role="3clFbG">
<node concept="37vLTw" id="5itBwM7X0lA" role="2Oq$k0">
@ -11000,6 +11207,211 @@
</node>
</node>
</node>
<node concept="3clFbF" id="FQ_DIr5uEa" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIr5uEb" role="3clFbG">
<node concept="liA8E" id="FQ_DIr5uEc" role="2OqNvi">
<ref role="37wK5l" to="ugy2:7eGEHDlc$aw" resolve="appendBody" />
<node concept="2OqwBi" id="FQ_DIr5uEd" role="37wK5m">
<node concept="2OqwBi" id="FQ_DIr5uEe" role="2Oq$k0">
<node concept="2ShNRf" id="FQ_DIr5uEf" role="2Oq$k0">
<node concept="1pGfFk" id="FQ_DIr5uEg" role="2ShVmc">
<property role="373rjd" value="true" />
<ref role="37wK5l" to="ugy2:4sSe4$oM2B4" />
<node concept="10M0yZ" id="FQ_DIr5uEh" role="37wK5m">
<ref role="3cqZAo" to="tpfl:FQ_DIqWkmy" resolve="TRACE_SYM" />
<ref role="1PxDUh" to="tpfl:FQ_DIqWkm2" resolve="TemplateTracePredicate" />
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIr5uEi" role="2OqNvi">
<ref role="37wK5l" to="ugy2:4sSe4$oM2Bb" resolve="withArguments" />
<node concept="Xl_RD" id="FQ_DIr5uEj" role="37wK5m">
<property role="Xl_RC" value="expand macro" />
</node>
<node concept="2YIFZM" id="FQ_DIr5uEk" role="37wK5m">
<ref role="37wK5l" to="w1kc:~SNodePointer.deserialize(java.lang.String)" resolve="deserialize" />
<ref role="1Pybhc" to="w1kc:~SNodePointer" resolve="SNodePointer" />
<node concept="Xl_RD" id="FQ_DIr5uEl" role="37wK5m">
<property role="Xl_RC" value="" />
<node concept="17Uvod" id="FQ_DIr5uEm" role="lGtFl">
<property role="2qtEX9" value="value" />
<property role="P4ACc" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1070475926800/1070475926801" />
<node concept="3zFVjK" id="FQ_DIr5uEn" role="3zH0cK">
<node concept="3clFbS" id="FQ_DIr5uEo" role="2VODD2">
<node concept="3cpWs8" id="FQ_DIrareK" role="3cqZAp">
<node concept="3cpWsn" id="FQ_DIrareL" role="3cpWs9">
<property role="TrG5h" value="origInput" />
<node concept="3Tqbb2" id="FQ_DIrareM" role="1tU5fm">
<ref role="ehGHo" to="wq2x:5itBwM7GBv1" resolve="ExpandMacroConstraint" />
</node>
<node concept="1PxgMI" id="FQ_DIrareN" role="33vP2m">
<property role="1BlNFB" value="true" />
<node concept="chp4Y" id="FQ_DIrareO" role="3oSUPX">
<ref role="cht4Q" to="wq2x:5itBwM7GBv1" resolve="ExpandMacroConstraint" />
</node>
<node concept="2OqwBi" id="FQ_DIrareP" role="1m5AlR">
<node concept="1iwH7S" id="FQ_DIrareQ" role="2Oq$k0" />
<node concept="12$id9" id="FQ_DIrareR" role="2OqNvi">
<node concept="30H73N" id="FQ_DIrareS" role="12$y8L" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="FQ_DIrareT" role="3cqZAp">
<node concept="3clFbS" id="FQ_DIrareU" role="3clFbx">
<node concept="3cpWs6" id="FQ_DIrareV" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIrareW" role="3cqZAk">
<node concept="2OqwBi" id="FQ_DIrareX" role="2Oq$k0">
<node concept="liA8E" id="FQ_DIrareY" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
<node concept="2JrnkZ" id="FQ_DIrareZ" role="2Oq$k0">
<node concept="2OqwBi" id="FQ_DIrarf0" role="2JrQYb">
<node concept="37vLTw" id="FQ_DIrarf1" role="2Oq$k0">
<ref role="3cqZAo" node="FQ_DIrareL" resolve="origInput" />
</node>
<node concept="3TrEf2" id="FQ_DIrarf2" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:5itBwM7GBLp" />
</node>
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIrarf3" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
</node>
</node>
</node>
<node concept="3clFbH" id="FQ_DIrarf4" role="3cqZAp" />
</node>
<node concept="3y3z36" id="FQ_DIrarf5" role="3clFbw">
<node concept="10Nm6u" id="FQ_DIrarf6" role="3uHU7w" />
<node concept="37vLTw" id="FQ_DIrarf7" role="3uHU7B">
<ref role="3cqZAo" node="FQ_DIrareL" resolve="origInput" />
</node>
</node>
<node concept="9aQIb" id="FQ_DIrarf8" role="9aQIa">
<node concept="3clFbS" id="FQ_DIrarf9" role="9aQI4">
<node concept="3cpWs8" id="FQ_DIrarfa" role="3cqZAp">
<node concept="3cpWsn" id="FQ_DIrarfb" role="3cpWs9">
<property role="TrG5h" value="asp" />
<node concept="3Tqbb2" id="FQ_DIrarfc" role="1tU5fm">
<ref role="ehGHo" to="wq2x:7IysFeBd3kI" resolve="ApplicationSessionParticipant" />
</node>
<node concept="2OqwBi" id="FQ_DIrarfd" role="33vP2m">
<node concept="30H73N" id="FQ_DIrarfe" role="2Oq$k0" />
<node concept="2Xjw5R" id="FQ_DIrarff" role="2OqNvi">
<node concept="1xMEDy" id="FQ_DIrarfg" role="1xVPHs">
<node concept="chp4Y" id="FQ_DIrarfh" role="ri$Ld">
<ref role="cht4Q" to="wq2x:7IysFeBd3kI" resolve="ApplicationSessionParticipant" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs6" id="FQ_DIrarfi" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIrarfj" role="3cqZAk">
<node concept="2OqwBi" id="FQ_DIrarfk" role="2Oq$k0">
<node concept="liA8E" id="FQ_DIrarfl" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
<node concept="2JrnkZ" id="FQ_DIrarfm" role="2Oq$k0">
<node concept="2OqwBi" id="FQ_DIrarfn" role="2JrQYb">
<node concept="1iwH7S" id="FQ_DIrarfo" role="2Oq$k0" />
<node concept="12$id9" id="FQ_DIrarfp" role="2OqNvi">
<node concept="37vLTw" id="FQ_DIrarfq" role="12$y8L">
<ref role="3cqZAo" node="FQ_DIrarfb" resolve="asp" />
</node>
</node>
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIrarfr" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="FQ_DIrareI" role="3cqZAp" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIr5uEB" role="2OqNvi">
<ref role="37wK5l" to="ugy2:5Nh6YP2eMER" resolve="toPredicate" />
<node concept="Xl_RD" id="FQ_DIr5uEC" role="37wK5m">
<property role="Xl_RC" value="" />
<node concept="17Uvod" id="FQ_DIr5uED" role="lGtFl">
<property role="2qtEX9" value="value" />
<property role="P4ACc" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1070475926800/1070475926801" />
<node concept="3zFVjK" id="FQ_DIr5uEE" role="3zH0cK">
<node concept="3clFbS" id="FQ_DIr5uEF" role="2VODD2">
<node concept="3clFbF" id="FQ_DIr5uEG" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIr5uEH" role="3clFbG">
<node concept="2OqwBi" id="FQ_DIr5uEI" role="2Oq$k0">
<node concept="2OqwBi" id="FQ_DIr5uEJ" role="2Oq$k0">
<node concept="2JrnkZ" id="FQ_DIr5uEK" role="2Oq$k0">
<node concept="2OqwBi" id="FQ_DIr5uEL" role="2JrQYb">
<node concept="1iwH7S" id="FQ_DIr5uEM" role="2Oq$k0" />
<node concept="12$id9" id="FQ_DIr5uEN" role="2OqNvi">
<node concept="30H73N" id="FQ_DIr5uEO" role="12$y8L" />
</node>
</node>
</node>
<node concept="liA8E" id="FQ_DIr5uEP" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
</node>
<node concept="liA8E" id="FQ_DIr5uEQ" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNodeReference.getNodeId()" resolve="getNodeId" />
</node>
</node>
<node concept="liA8E" id="FQ_DIr5uER" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="FQ_DIr5uES" role="2Oq$k0">
<ref role="3cqZAo" node="5itBwMbdiJl" resolve="builder" />
<node concept="1sPUBX" id="FQ_DIr5uET" role="lGtFl">
<ref role="v9R2y" node="1L74NXE_$78" resolve="builder_variable" />
<node concept="3NFfHV" id="FQ_DIr5uEU" role="1sPUBK">
<node concept="3clFbS" id="FQ_DIr5uEV" role="2VODD2">
<node concept="3clFbF" id="FQ_DIr5uEW" role="3cqZAp">
<node concept="2OqwBi" id="FQ_DIr5uEX" role="3clFbG">
<node concept="30H73N" id="FQ_DIr5uEY" role="2Oq$k0" />
<node concept="2Xjw5R" id="FQ_DIr5uEZ" role="2OqNvi">
<node concept="3gmYPX" id="FQ_DIr5uF0" role="1xVPHs">
<node concept="3gn64h" id="FQ_DIr5uF1" role="3gmYPZ">
<ref role="3gnhBz" to="wq2x:7IysFeBd3kI" resolve="ApplicationSessionParticipant" />
</node>
<node concept="3gn64h" id="FQ_DIr5uF2" role="3gmYPZ">
<ref role="3gnhBz" to="tpee:fzclF7W" resolve="BaseMethodDeclaration" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="raruj" id="FQ_DIr5uF3" role="lGtFl" />
</node>
<node concept="3clFbF" id="5itBwMbdiK7" role="3cqZAp">
<node concept="2OqwBi" id="5itBwMbdiK8" role="3clFbG">
<node concept="37vLTw" id="5itBwMbdiK9" role="2Oq$k0">

View File

@ -11056,5 +11056,425 @@
</node>
</node>
</node>
<node concept="312cEu" id="FQ_DIqWkm2">
<property role="TrG5h" value="TemplateTracePredicate" />
<node concept="2tJIrI" id="FQ_DIqWkm3" role="jymVt" />
<node concept="3clFbW" id="FQ_DIqWkm4" role="jymVt">
<node concept="37vLTG" id="FQ_DIqWkm5" role="3clF46">
<property role="TrG5h" value="message" />
<node concept="3uibUv" id="FQ_DIqWkm6" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="FQ_DIqWkm9" role="3clF46">
<property role="TrG5h" value="template" />
<node concept="3uibUv" id="FQ_DIqWkma" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="3cqZAl" id="FQ_DIqWkmd" role="3clF45" />
<node concept="3Tm1VV" id="FQ_DIqWkme" role="1B3o_S" />
<node concept="3clFbS" id="FQ_DIqWkmf" role="3clF47">
<node concept="XkiVB" id="FQ_DIqWkmg" role="3cqZAp">
<ref role="37wK5l" node="6Kcfpq7B1f7" resolve="AbstractPredicate" />
<node concept="37vLTw" id="FQ_DIqWkmh" role="37wK5m">
<ref role="3cqZAo" node="FQ_DIqWkm5" resolve="message" />
</node>
<node concept="37vLTw" id="FQ_DIqWkmj" role="37wK5m">
<ref role="3cqZAo" node="FQ_DIqWkm9" resolve="template" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="FQ_DIqWkml" role="jymVt" />
<node concept="3clFb_" id="FQ_DIqWkmm" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="symbol" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="3Tm1VV" id="FQ_DIqWkmn" role="1B3o_S" />
<node concept="3uibUv" id="FQ_DIqWkmo" role="3clF45">
<ref role="3uigEE" to="av0y:~PredicateSymbol" resolve="PredicateSymbol" />
</node>
<node concept="3clFbS" id="FQ_DIqWkmp" role="3clF47">
<node concept="3clFbF" id="FQ_DIqWkmq" role="3cqZAp">
<node concept="37vLTw" id="FQ_DIqWkmr" role="3clFbG">
<ref role="3cqZAo" node="FQ_DIqWkmy" resolve="FEEDBACK_SYM" />
</node>
</node>
</node>
<node concept="2AHcQZ" id="FQ_DIqWkms" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="FQ_DIqWkmt" role="jymVt" />
<node concept="Wx3nA" id="FQ_DIqWkmu" role="jymVt">
<property role="3TUv4t" value="true" />
<property role="TrG5h" value="TRACE" />
<node concept="3Tm1VV" id="FQ_DIqWkmv" role="1B3o_S" />
<node concept="17QB3L" id="FQ_DIqWkmw" role="1tU5fm" />
<node concept="Xl_RD" id="FQ_DIqWkmx" role="33vP2m">
<property role="Xl_RC" value="trace" />
</node>
</node>
<node concept="Wx3nA" id="FQ_DIqWkmy" role="jymVt">
<property role="TrG5h" value="TRACE_SYM" />
<property role="3TUv4t" value="true" />
<node concept="3uibUv" id="FQ_DIqWkmz" role="1tU5fm">
<ref role="3uigEE" to="av0y:~PredicateSymbol" resolve="PredicateSymbol" />
</node>
<node concept="3Tm1VV" id="FQ_DIqWkm$" role="1B3o_S" />
<node concept="2ShNRf" id="FQ_DIqWkm_" role="33vP2m">
<node concept="YeOm9" id="FQ_DIqWkmA" role="2ShVmc">
<node concept="1Y3b0j" id="FQ_DIqWkmB" role="YeSDq">
<property role="2bfB8j" value="true" />
<ref role="1Y3XeK" node="7lt0LtQvaw_" resolve="PredicateSymbolExt" />
<ref role="37wK5l" node="7lt0LtQva_c" resolve="PredicateSymbolExt" />
<node concept="37vLTw" id="FQ_DIqWkmC" role="37wK5m">
<ref role="3cqZAo" node="FQ_DIqWkmu" resolve="FEEDBACK" />
</node>
<node concept="3cmrfG" id="FQ_DIqWkmD" role="37wK5m">
<property role="3cmrfH" value="2" />
</node>
<node concept="3Tm1VV" id="FQ_DIqWkmE" role="1B3o_S" />
<node concept="3clFb_" id="FQ_DIqWkmF" role="jymVt">
<property role="TrG5h" value="solver" />
<property role="1EzhhJ" value="false" />
<node concept="3uibUv" id="FQ_DIqWkmG" role="3clF45">
<ref role="3uigEE" to="w7la:~Solver" resolve="Solver" />
</node>
<node concept="3Tm1VV" id="FQ_DIqWkmH" role="1B3o_S" />
<node concept="3clFbS" id="FQ_DIqWkmI" role="3clF47">
<node concept="3clFbF" id="FQ_DIqWkmJ" role="3cqZAp">
<node concept="2ShNRf" id="FQ_DIqWkmK" role="3clFbG">
<node concept="HV5vD" id="FQ_DIqWkmL" role="2ShVmc">
<ref role="HV5vE" node="FQ_DIqWkn9" resolve="TemplateTraceSolver" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFb_" id="FQ_DIqWkmM" role="jymVt">
<property role="TrG5h" value="predicate" />
<property role="1EzhhJ" value="false" />
<node concept="37vLTG" id="FQ_DIqWkmN" role="3clF46">
<property role="TrG5h" value="args" />
<node concept="8X2XB" id="FQ_DIqWkmO" role="1tU5fm">
<node concept="3uibUv" id="FQ_DIqWkmP" role="8Xvag">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
<node concept="3uibUv" id="FQ_DIqWkmQ" role="3clF45">
<ref role="3uigEE" node="6Kcfpq7B0Wu" resolve="AbstractPredicate" />
</node>
<node concept="3Tm1VV" id="FQ_DIqWkmR" role="1B3o_S" />
<node concept="3clFbS" id="FQ_DIqWkmS" role="3clF47">
<node concept="3clFbF" id="FQ_DIqWkmT" role="3cqZAp">
<node concept="2ShNRf" id="FQ_DIqWkmU" role="3clFbG">
<node concept="1pGfFk" id="FQ_DIqWkmV" role="2ShVmc">
<ref role="37wK5l" node="FQ_DIqWkm4" resolve="ProvideFeedbackPredicate" />
<node concept="AH0OO" id="FQ_DIqWkmW" role="37wK5m">
<node concept="3cmrfG" id="FQ_DIqWkmX" role="AHEQo">
<property role="3cmrfH" value="0" />
</node>
<node concept="37vLTw" id="FQ_DIqWkmY" role="AHHXb">
<ref role="3cqZAo" node="FQ_DIqWkmN" resolve="args" />
</node>
</node>
<node concept="AH0OO" id="FQ_DIqWkmZ" role="37wK5m">
<node concept="3cmrfG" id="FQ_DIqWkn0" role="AHEQo">
<property role="3cmrfH" value="1" />
</node>
<node concept="37vLTw" id="FQ_DIqWkn1" role="AHHXb">
<ref role="3cqZAo" node="FQ_DIqWkmN" resolve="args" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="FQ_DIqWkn8" role="jymVt" />
<node concept="312cEu" id="FQ_DIqWkn9" role="jymVt">
<property role="TrG5h" value="TemplateTraceSolver" />
<node concept="2tJIrI" id="FQ_DIqWkna" role="jymVt" />
<node concept="3clFb_" id="FQ_DIqWknb" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="ask" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="3Tm1VV" id="FQ_DIqWknc" role="1B3o_S" />
<node concept="10P_77" id="FQ_DIqWknd" role="3clF45" />
<node concept="37vLTG" id="FQ_DIqWkne" role="3clF46">
<property role="TrG5h" value="invocation" />
<node concept="3uibUv" id="FQ_DIqWknf" role="1tU5fm">
<ref role="3uigEE" to="w7la:~PredicateInvocation" resolve="PredicateInvocation" />
</node>
</node>
<node concept="3clFbS" id="FQ_DIqWkng" role="3clF47">
<node concept="YS8fn" id="FQ_DIqWknh" role="3cqZAp">
<node concept="2ShNRf" id="FQ_DIqWkni" role="YScLw">
<node concept="1pGfFk" id="FQ_DIqWknj" role="2ShVmc">
<ref role="37wK5l" to="w7la:~EvaluationFailureException.&lt;init&gt;(java.lang.String)" resolve="EvaluationFailureException" />
<node concept="3cpWs3" id="FQ_DIqWknk" role="37wK5m">
<node concept="Xl_RD" id="FQ_DIqWknl" role="3uHU7B">
<property role="Xl_RC" value="ask not applicable to " />
</node>
<node concept="2OqwBi" id="FQ_DIqWknm" role="3uHU7w">
<node concept="2OqwBi" id="FQ_DIqWknn" role="2Oq$k0">
<node concept="37vLTw" id="FQ_DIqWkno" role="2Oq$k0">
<ref role="3cqZAo" node="FQ_DIqWkne" resolve="invocation" />
</node>
<node concept="liA8E" id="FQ_DIqWknp" role="2OqNvi">
<ref role="37wK5l" to="w7la:~PredicateInvocation.predicate()" resolve="predicate" />
</node>
</node>
<node concept="liA8E" id="FQ_DIqWknq" role="2OqNvi">
<ref role="37wK5l" to="av0y:~Predicate.symbol()" resolve="symbol" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="FQ_DIqWknr" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="FQ_DIqWkns" role="jymVt" />
<node concept="3clFb_" id="FQ_DIqWknt" role="jymVt">
<property role="TrG5h" value="tell" />
<node concept="3Tm1VV" id="FQ_DIqWknu" role="1B3o_S" />
<node concept="3cqZAl" id="FQ_DIqWknv" role="3clF45" />
<node concept="37vLTG" id="FQ_DIqWknw" role="3clF46">
<property role="TrG5h" value="invocation" />
<node concept="3uibUv" id="FQ_DIqWknx" role="1tU5fm">
<ref role="3uigEE" to="w7la:~PredicateInvocation" resolve="PredicateInvocation" />
</node>
</node>
<node concept="3clFbS" id="FQ_DIqWkny" role="3clF47">
<node concept="YS8fn" id="FQ_DIqWknz" role="3cqZAp">
<node concept="2ShNRf" id="FQ_DIqWkn$" role="YScLw">
<node concept="1pGfFk" id="FQ_DIqWkn_" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~UnsupportedOperationException.&lt;init&gt;()" resolve="UnsupportedOperationException" />
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="FQ_DIqWknA" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="FQ_DIqWknB" role="jymVt" />
<node concept="3clFb_" id="FQ_DIqWknC" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="tryTell" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="3Tm1VV" id="FQ_DIqWknD" role="1B3o_S" />
<node concept="3uibUv" id="FQ_DIqWknE" role="3clF45">
<ref role="3uigEE" to="w7la:~Solver$Result" resolve="Solver.Result" />
</node>
<node concept="37vLTG" id="FQ_DIqWknF" role="3clF46">
<property role="TrG5h" value="invocation" />
<node concept="3uibUv" id="FQ_DIqWknG" role="1tU5fm">
<ref role="3uigEE" to="w7la:~PredicateInvocation" resolve="PredicateInvocation" />
</node>
</node>
<node concept="3clFbS" id="FQ_DIqWknH" role="3clF47">
<node concept="3clFbJ" id="FQ_DIqWknI" role="3cqZAp">
<node concept="3clFbS" id="FQ_DIqWknJ" role="3clFbx">
<node concept="YS8fn" id="FQ_DIqWknK" role="3cqZAp">
<node concept="2ShNRf" id="FQ_DIqWknL" role="YScLw">
<node concept="1pGfFk" id="FQ_DIqWknM" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalArgumentException.&lt;init&gt;()" resolve="IllegalArgumentException" />
</node>
</node>
</node>
</node>
<node concept="3fqX7Q" id="FQ_DIqWknN" role="3clFbw">
<node concept="1eOMI4" id="FQ_DIqWknO" role="3fr31v">
<node concept="2ZW3vV" id="FQ_DIqWknP" role="1eOMHV">
<node concept="3uibUv" id="FQ_DIqWknQ" role="2ZW6by">
<ref role="3uigEE" node="FQ_DIqWkm2" resolve="ProvideFeedbackPredicate" />
</node>
<node concept="2OqwBi" id="FQ_DIqWknR" role="2ZW6bz">
<node concept="37vLTw" id="FQ_DIqWknS" role="2Oq$k0">
<ref role="3cqZAo" node="FQ_DIqWknF" resolve="invocation" />
</node>
<node concept="liA8E" id="FQ_DIqWknT" role="2OqNvi">
<ref role="37wK5l" to="w7la:~PredicateInvocation.predicate()" resolve="predicate" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1X3_iC" id="FQ_DIqWM7P" role="lGtFl">
<property role="3V$3am" value="statement" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
<node concept="3cpWs8" id="FQ_DIqWknU" role="8Wnug">
<node concept="3cpWsn" id="FQ_DIqWknV" role="3cpWs9">
<property role="TrG5h" value="msg" />
<node concept="3uibUv" id="FQ_DIqWknW" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~String" resolve="String" />
</node>
<node concept="2YIFZM" id="FQ_DIqWknX" role="33vP2m">
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<ref role="37wK5l" to="wyt6:~String.valueOf(char[])" resolve="valueOf" />
<node concept="2OqwBi" id="FQ_DIqWknY" role="37wK5m">
<node concept="2OqwBi" id="FQ_DIqWknZ" role="2Oq$k0">
<node concept="37vLTw" id="FQ_DIqWko0" role="2Oq$k0">
<ref role="3cqZAo" node="FQ_DIqWknF" resolve="invocation" />
</node>
<node concept="liA8E" id="FQ_DIqWko1" role="2OqNvi">
<ref role="37wK5l" to="w7la:~PredicateInvocation.arguments()" resolve="arguments" />
</node>
</node>
<node concept="liA8E" id="FQ_DIqWko2" role="2OqNvi">
<ref role="37wK5l" to="33ny:~List.get(int)" resolve="get" />
<node concept="3cmrfG" id="FQ_DIqWko3" role="37wK5m">
<property role="3cmrfH" value="0" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1X3_iC" id="FQ_DIqWM7Q" role="lGtFl">
<property role="3V$3am" value="statement" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
<node concept="3cpWs8" id="FQ_DIqWkoe" role="8Wnug">
<node concept="3cpWsn" id="FQ_DIqWkof" role="3cpWs9">
<property role="TrG5h" value="template" />
<node concept="3uibUv" id="FQ_DIqWkog" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
<node concept="2OqwBi" id="FQ_DIqWkoh" role="33vP2m">
<node concept="2OqwBi" id="FQ_DIqWkoi" role="2Oq$k0">
<node concept="37vLTw" id="FQ_DIqWkoj" role="2Oq$k0">
<ref role="3cqZAo" node="FQ_DIqWknF" resolve="invocation" />
</node>
<node concept="liA8E" id="FQ_DIqWkok" role="2OqNvi">
<ref role="37wK5l" to="w7la:~PredicateInvocation.arguments()" resolve="arguments" />
</node>
</node>
<node concept="liA8E" id="FQ_DIqWkol" role="2OqNvi">
<ref role="37wK5l" to="33ny:~List.get(int)" resolve="get" />
<node concept="3cmrfG" id="FQ_DIqWkom" role="37wK5m">
<property role="3cmrfH" value="1" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1X3_iC" id="FQ_DIqWM7R" role="lGtFl">
<property role="3V$3am" value="statement" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
<node concept="3cpWs8" id="FQ_DIqWkon" role="8Wnug">
<node concept="3cpWsn" id="FQ_DIqWkoo" role="3cpWs9">
<property role="TrG5h" value="templateRef" />
<node concept="3uibUv" id="FQ_DIqWkop" role="1tU5fm">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="10Nm6u" id="FQ_DIqWkoq" role="33vP2m" />
</node>
</node>
</node>
<node concept="1X3_iC" id="FQ_DIqWM7S" role="lGtFl">
<property role="3V$3am" value="statement" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
<node concept="3clFbJ" id="FQ_DIqWkor" role="8Wnug">
<node concept="3clFbS" id="FQ_DIqWkos" role="3clFbx">
<node concept="3clFbF" id="FQ_DIqWkot" role="3cqZAp">
<node concept="37vLTI" id="FQ_DIqWkou" role="3clFbG">
<node concept="1eOMI4" id="FQ_DIqWkov" role="37vLTx">
<node concept="10QFUN" id="FQ_DIqWkow" role="1eOMHV">
<node concept="3uibUv" id="FQ_DIqWkox" role="10QFUM">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="37vLTw" id="FQ_DIqWkoy" role="10QFUP">
<ref role="3cqZAo" node="FQ_DIqWkof" resolve="template" />
</node>
</node>
</node>
<node concept="37vLTw" id="FQ_DIqWkoz" role="37vLTJ">
<ref role="3cqZAo" node="FQ_DIqWkoo" resolve="templateRef" />
</node>
</node>
</node>
<node concept="3clFbH" id="FQ_DIqWko$" role="3cqZAp" />
</node>
<node concept="2ZW3vV" id="FQ_DIqWko_" role="3clFbw">
<node concept="3uibUv" id="FQ_DIqWkoA" role="2ZW6by">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="37vLTw" id="FQ_DIqWkoB" role="2ZW6bz">
<ref role="3cqZAo" node="FQ_DIqWkof" resolve="template" />
</node>
</node>
<node concept="3eNFk2" id="FQ_DIqWkoC" role="3eNLev">
<node concept="2ZW3vV" id="FQ_DIqWkoD" role="3eO9$A">
<node concept="3uibUv" id="FQ_DIqWkoE" role="2ZW6by">
<ref role="3uigEE" to="wyt6:~String" resolve="String" />
</node>
<node concept="37vLTw" id="FQ_DIqWkoF" role="2ZW6bz">
<ref role="3cqZAo" node="FQ_DIqWkof" resolve="template" />
</node>
</node>
<node concept="3clFbS" id="FQ_DIqWkoG" role="3eOfB_">
<node concept="3clFbF" id="FQ_DIqWkoH" role="3cqZAp">
<node concept="37vLTI" id="FQ_DIqWkoI" role="3clFbG">
<node concept="37vLTw" id="FQ_DIqWkoJ" role="37vLTJ">
<ref role="3cqZAo" node="FQ_DIqWkoo" resolve="templateRef" />
</node>
<node concept="2YIFZM" id="FQ_DIqWkoK" role="37vLTx">
<ref role="1Pybhc" to="w1kc:~SNodePointer" resolve="SNodePointer" />
<ref role="37wK5l" to="w1kc:~SNodePointer.deserialize(java.lang.String)" resolve="deserialize" />
<node concept="2YIFZM" id="FQ_DIqWkoL" role="37wK5m">
<ref role="37wK5l" to="wyt6:~String.valueOf(java.lang.Object)" resolve="valueOf" />
<ref role="1Pybhc" to="wyt6:~String" resolve="String" />
<node concept="37vLTw" id="FQ_DIqWkoM" role="37wK5m">
<ref role="3cqZAo" node="FQ_DIqWkof" resolve="template" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="FQ_DIqWkpV" role="3cqZAp">
<node concept="2YIFZM" id="FQ_DIqWkpW" role="3clFbG">
<ref role="37wK5l" to="w7la:~Solver$Result.OK()" resolve="OK" />
<ref role="1Pybhc" to="w7la:~Solver$Result" resolve="Solver.Result" />
</node>
</node>
</node>
<node concept="2AHcQZ" id="FQ_DIqWkpX" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="FQ_DIqWkpY" role="jymVt" />
<node concept="3Tm1VV" id="FQ_DIqWkpZ" role="1B3o_S" />
<node concept="3uibUv" id="FQ_DIqWkq0" role="EKbjA">
<ref role="3uigEE" to="w7la:~Solver" resolve="Solver" />
</node>
</node>
<node concept="2tJIrI" id="FQ_DIqWkq1" role="jymVt" />
<node concept="3Tm1VV" id="FQ_DIqWkq2" role="1B3o_S" />
<node concept="3uibUv" id="FQ_DIqWkq3" role="1zkMxy">
<ref role="3uigEE" node="6Kcfpq7B0Wu" resolve="AbstractPredicate" />
</node>
</node>
</model>