Add basic tests for simple program analysis, add test helpers.

This commit is contained in:
Grigorii Kirgizov 2019-06-24 16:44:20 +03:00 committed by Fedor Isakov
parent 6c4667e066
commit ce9b91c4a5
8 changed files with 4098 additions and 157 deletions

View File

@ -594,6 +594,7 @@
<language id="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" />
<language id="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" />
<language id="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" />
<language id="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" />
<language id="l:35320f26-77cb-4c55-be9f-a97a27770af1:jetbrains.mps.logic" />
<language id="l:0b80a2e8-f9f1-47b3-823f-56eb115bca42:jetbrains.mps.typechecking.annotation" />
</uses>
@ -2610,6 +2611,7 @@
<language id="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" />
<language id="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" />
<language id="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" />
<language id="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" />
<language id="l:35320f26-77cb-4c55-be9f-a97a27770af1:jetbrains.mps.logic" />
<language id="l:0b80a2e8-f9f1-47b3-823f-56eb115bca42:jetbrains.mps.typechecking.annotation" />
</uses>

View File

@ -26,6 +26,7 @@
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="1" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="15" />
<language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:35320f26-77cb-4c55-be9f-a97a27770af1:jetbrains.mps.logic" version="2" />
<language slang="l:0b80a2e8-f9f1-47b3-823f-56eb115bca42:jetbrains.mps.typechecking.annotation" version="0" />

View File

@ -6169,6 +6169,21 @@
<ref role="3uigEE" to="av0y:~IncrementalProgramSpec" resolve="IncrementalProgramSpec" />
</node>
</node>
<node concept="2tJIrI" id="tyIfzBDkqP" role="jymVt" />
<node concept="3clFb_" id="tyIfzBDlP8" role="jymVt">
<property role="TrG5h" value="getProgramGenInfo" />
<node concept="3clFbS" id="tyIfzBDlPb" role="3clF47">
<node concept="3clFbF" id="tyIfzBDmOq" role="3cqZAp">
<node concept="37vLTw" id="tyIfzBDmOp" role="3clFbG">
<ref role="3cqZAo" node="tyIfzBDjPX" resolve="programGenInfo" />
</node>
</node>
</node>
<node concept="3Tm1VV" id="tyIfzBDlmZ" role="1B3o_S" />
<node concept="3uibUv" id="tyIfzBDmqh" role="3clF45">
<ref role="3uigEE" to="xnrr:1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
</node>
<node concept="2tJIrI" id="6OXbTDxQQYI" role="jymVt" />
<node concept="3clFb_" id="7kTeLbPnDc0" role="jymVt">
<property role="TrG5h" value="doProduce" />
@ -6333,11 +6348,11 @@
<node concept="3cpWsn" id="1H_6AUSGoq4" role="3cpWs9">
<property role="TrG5h" value="analysisInfoBuilder" />
<node concept="3uibUv" id="1H_6AUT4kzY" role="1tU5fm">
<ref role="3uigEE" to="xnrr:1H_6AUSE5Z9" resolve="ProgramAnalysisInfoBuilder" />
<ref role="3uigEE" to="xnrr:1H_6AUSE5Z9" resolve="ProgramGenInfoBuilder" />
</node>
<node concept="2ShNRf" id="1H_6AUSGoC6" role="33vP2m">
<node concept="HV5vD" id="1H_6AUSGpYh" role="2ShVmc">
<ref role="HV5vE" to="xnrr:1H_6AUSE5Z9" resolve="ProgramAnalysisInfoBuilder" />
<ref role="HV5vE" to="xnrr:1H_6AUSE5Z9" resolve="ProgramGenInfoBuilder" />
</node>
</node>
</node>
@ -6444,13 +6459,15 @@
</node>
</node>
<node concept="3clFbH" id="1H_6AUT4mqH" role="3cqZAp" />
<node concept="3cpWs8" id="1H_6AUT4mw1" role="3cqZAp">
<node concept="3cpWsn" id="1H_6AUT4mw2" role="3cpWs9">
<property role="TrG5h" value="info" />
<node concept="3uibUv" id="1H_6AUT4mw3" role="1tU5fm">
<ref role="3uigEE" to="xnrr:1H_6AUSU96G" resolve="ProgramAnalysisInfoBuilder.Info" />
<node concept="3clFbF" id="tyIfzBDnff" role="3cqZAp">
<node concept="37vLTI" id="tyIfzBDnIs" role="3clFbG">
<node concept="2OqwBi" id="tyIfzBDnqF" role="37vLTJ">
<node concept="Xjq3P" id="tyIfzBDnfd" role="2Oq$k0" />
<node concept="2OwXpG" id="tyIfzBDn_M" role="2OqNvi">
<ref role="2Oxat5" node="tyIfzBDjPX" resolve="programGenInfo" />
</node>
</node>
<node concept="2OqwBi" id="1H_6AUT4lei" role="33vP2m">
<node concept="2OqwBi" id="1H_6AUT4lei" role="37vLTx">
<node concept="37vLTw" id="1H_6AUT4l2S" role="2Oq$k0">
<ref role="3cqZAo" node="1H_6AUSGoq4" resolve="analysisInfoBuilder" />
</node>
@ -6472,8 +6489,8 @@
<node concept="2ShNRf" id="1H_6AUT4lOu" role="33vP2m">
<node concept="1pGfFk" id="1H_6AUT4m0i" role="2ShVmc">
<ref role="37wK5l" to="xnrr:1H_6AUSTUb0" resolve="SimpleProgramAnalysis" />
<node concept="37vLTw" id="1H_6AUT4mD8" role="37wK5m">
<ref role="3cqZAo" node="1H_6AUT4mw2" resolve="info" />
<node concept="37vLTw" id="tyIfzBDnQl" role="37wK5m">
<ref role="3cqZAo" node="tyIfzBDjPX" resolve="programGenInfo" />
</node>
</node>
</node>
@ -6488,8 +6505,8 @@
<node concept="2ShNRf" id="1H_6AUT4pER" role="33vP2m">
<node concept="1pGfFk" id="1H_6AUT4q22" role="2ShVmc">
<ref role="37wK5l" to="xnrr:1H_6AUT4mKn" resolve="IncrementalProgramSpecBuilder" />
<node concept="37vLTw" id="1H_6AUT4qdW" role="37wK5m">
<ref role="3cqZAo" node="1H_6AUT4mw2" resolve="info" />
<node concept="37vLTw" id="tyIfzBDnWu" role="37wK5m">
<ref role="3cqZAo" node="tyIfzBDjPX" resolve="programGenInfo" />
</node>
<node concept="37vLTw" id="1H_6AUT4qgt" role="37wK5m">
<ref role="3cqZAo" node="1H_6AUT4lKe" resolve="principalCtrsAnalysis" />
@ -6598,6 +6615,13 @@
<ref role="3uigEE" to="av0y:~IncrementalProgramSpec" resolve="IncrementalProgramSpec" />
</node>
</node>
<node concept="312cEg" id="tyIfzBDjPX" role="jymVt">
<property role="TrG5h" value="programGenInfo" />
<node concept="3Tm6S6" id="tyIfzBDjf6" role="1B3o_S" />
<node concept="3uibUv" id="tyIfzBDjNN" role="1tU5fm">
<ref role="3uigEE" to="xnrr:1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
</node>
<node concept="312cEg" id="1pPth$lE8Xs" role="jymVt">
<property role="34CwA1" value="false" />
<property role="eg7rD" value="false" />

View File

@ -57,6 +57,9 @@
<concept id="1070475354124" name="jetbrains.mps.baseLanguage.structure.ThisExpression" flags="nn" index="Xjq3P" />
<concept id="1070475587102" name="jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" flags="nn" index="XkiVB" />
<concept id="1081236700938" name="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration" flags="ig" index="2YIFZL" />
<concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
</concept>
<concept id="1081256982272" name="jetbrains.mps.baseLanguage.structure.InstanceOfExpression" flags="nn" index="2ZW3vV">
<child id="1081256993305" name="classType" index="2ZW6by" />
<child id="1081256993304" name="leftExpression" index="2ZW6bz" />
@ -402,7 +405,7 @@
<node concept="3Tm1VV" id="1H_6AUSXnyl" role="1B3o_S" />
</node>
<node concept="312cEu" id="1H_6AUSE5Z9">
<property role="TrG5h" value="ProgramAnalysisInfoBuilder" />
<property role="TrG5h" value="ProgramGenInfoBuilder" />
<node concept="3Tm1VV" id="1H_6AUSE5Za" role="1B3o_S" />
<node concept="3uibUv" id="1H_6AUSRWRO" role="EKbjA">
<ref role="3uigEE" node="1H_6AUSENOT" resolve="RuleTemplateApplicationListener" />
@ -560,7 +563,7 @@
<node concept="2tJIrI" id="1H_6AUSXitz" role="jymVt" />
<node concept="312cEu" id="1H_6AUSU96G" role="jymVt">
<property role="2bfB8j" value="true" />
<property role="TrG5h" value="Info" />
<property role="TrG5h" value="ProgramGenInfo" />
<node concept="3clFb_" id="1H_6AUSYG_V" role="jymVt">
<property role="TrG5h" value="getProgram" />
<node concept="3clFbS" id="1H_6AUSYG_Y" role="3clF47">
@ -705,14 +708,14 @@
<node concept="3cpWs6" id="1H_6AUSU_Qk" role="3cqZAp">
<node concept="2ShNRf" id="1H_6AUSUI0l" role="3cqZAk">
<node concept="HV5vD" id="1H_6AUSULGv" role="2ShVmc">
<ref role="HV5vE" node="1H_6AUSU96G" resolve="ProgramAnalysisInfoBuilder.Info" />
<ref role="HV5vE" node="1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="1H_6AUSUrGQ" role="1B3o_S" />
<node concept="3uibUv" id="1H_6AUSUzzz" role="3clF45">
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramAnalysisInfoBuilder.Info" />
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
</node>
<node concept="2tJIrI" id="1H_6AUSEWo9" role="jymVt" />
@ -762,7 +765,7 @@
<node concept="312cEg" id="1H_6AUSV0bn" role="jymVt">
<property role="TrG5h" value="info" />
<node concept="3uibUv" id="1H_6AUSUXzT" role="1tU5fm">
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramAnalysisInfoBuilder.Info" />
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
<node concept="3Tm6S6" id="1H_6AUSV2Zd" role="1B3o_S" />
</node>
@ -810,7 +813,7 @@
<node concept="37vLTG" id="1H_6AUSUU9S" role="3clF46">
<property role="TrG5h" value="info" />
<node concept="3uibUv" id="1H_6AUSUUdn" role="1tU5fm">
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramAnalysisInfoBuilder.Info" />
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
</node>
<node concept="3cqZAl" id="1H_6AUSTUb2" role="3clF45" />
@ -884,9 +887,10 @@
<node concept="1bVj0M" id="1H_6AUT13V6" role="37wK5m">
<node concept="3clFbS" id="1H_6AUT13V8" role="1bW5cS">
<node concept="3clFbF" id="1H_6AUT1Xjh" role="3cqZAp">
<node concept="1rXfSq" id="1H_6AUT1Xjg" role="3clFbG">
<ref role="37wK5l" node="1H_6AUT0Wq9" resolve="hasSNodeAccess" />
<node concept="37vLTw" id="1H_6AUT1YFe" role="37wK5m">
<node concept="2YIFZM" id="tyIfzBBafV" role="3clFbG">
<ref role="1Pybhc" node="1H_6AUSGVEF" resolve="SimpleProgramAnalysis.SNodeAccessChecker" />
<ref role="37wK5l" node="1H_6AUT0Wq9" resolve="check" />
<node concept="37vLTw" id="tyIfzBBafW" role="37wK5m">
<ref role="3cqZAo" node="1H_6AUT171t" resolve="ctr" />
</node>
</node>
@ -1256,98 +1260,103 @@
</node>
</node>
<node concept="2tJIrI" id="1H_6AUSQe0N" role="jymVt" />
<node concept="2YIFZL" id="1H_6AUT0Wq9" role="jymVt">
<property role="TrG5h" value="hasSNodeAccess" />
<node concept="3clFbS" id="1H_6AUT0Wqb" role="3clF47">
<node concept="3cpWs8" id="1H_6AUT0Wqc" role="3cqZAp">
<node concept="3cpWsn" id="1H_6AUT0Wqd" role="3cpWs9">
<property role="TrG5h" value="checker" />
<node concept="3uibUv" id="1H_6AUT0Wqe" role="1tU5fm">
<ref role="3uigEE" node="1H_6AUSGVEF" resolve="SimpleProgramAnalysis.SNodeAccessChecker" />
<node concept="2tJIrI" id="1H_6AUSGSGm" role="jymVt" />
<node concept="312cEu" id="1H_6AUSGVEF" role="jymVt">
<property role="TrG5h" value="SNodeAccessChecker" />
<node concept="2tJIrI" id="tyIfzBBcjV" role="jymVt" />
<node concept="2YIFZL" id="1H_6AUT0Wq9" role="jymVt">
<property role="TrG5h" value="check" />
<node concept="3clFbS" id="1H_6AUT0Wqb" role="3clF47">
<node concept="3cpWs8" id="1H_6AUT0Wqc" role="3cqZAp">
<node concept="3cpWsn" id="1H_6AUT0Wqd" role="3cpWs9">
<property role="TrG5h" value="checker" />
<node concept="3uibUv" id="1H_6AUT0Wqe" role="1tU5fm">
<ref role="3uigEE" node="1H_6AUSGVEF" resolve="SimpleProgramAnalysis.SNodeAccessChecker" />
</node>
<node concept="2ShNRf" id="1H_6AUT0Wqf" role="33vP2m">
<node concept="HV5vD" id="1H_6AUT0Wqg" role="2ShVmc">
<ref role="HV5vE" node="1H_6AUSGVEF" resolve="SimpleProgramAnalysis.SNodeAccessChecker" />
</node>
</node>
</node>
<node concept="2ShNRf" id="1H_6AUT0Wqf" role="33vP2m">
<node concept="HV5vD" id="1H_6AUT0Wqg" role="2ShVmc">
<ref role="HV5vE" node="1H_6AUSGVEF" resolve="SimpleProgramAnalysis.SNodeAccessChecker" />
</node>
<node concept="3SKdUt" id="1H_6AUT0Wqh" role="3cqZAp">
<node concept="1PaTwC" id="1H_6AUT0Wqi" role="3ndbpf">
<node concept="3oM_SD" id="1H_6AUT0Wqj" role="1PaTwD">
<property role="3oM_SC" value="if" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqk" role="1PaTwD">
<property role="3oM_SC" value="access" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wql" role="1PaTwD">
<property role="3oM_SC" value="to" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqm" role="1PaTwD">
<property role="3oM_SC" value="snodes" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqn" role="1PaTwD">
<property role="3oM_SC" value="is" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqo" role="1PaTwD">
<property role="3oM_SC" value="in" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqp" role="1PaTwD">
<property role="3oM_SC" value="at" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqq" role="1PaTwD">
<property role="3oM_SC" value="least" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqr" role="1PaTwD">
<property role="3oM_SC" value="one" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqs" role="1PaTwD">
<property role="3oM_SC" value="constraint" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqt" role="1PaTwD">
<property role="3oM_SC" value="argument" />
</node>
</node>
</node>
</node>
<node concept="3SKdUt" id="1H_6AUT0Wqh" role="3cqZAp">
<node concept="1PaTwC" id="1H_6AUT0Wqi" role="3ndbpf">
<node concept="3oM_SD" id="1H_6AUT0Wqj" role="1PaTwD">
<property role="3oM_SC" value="if" />
<node concept="2Gpval" id="1H_6AUT0Wqu" role="3cqZAp">
<node concept="2GrKxI" id="1H_6AUT0Wqv" role="2Gsz3X">
<property role="TrG5h" value="arg" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqk" role="1PaTwD">
<property role="3oM_SC" value="access" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wql" role="1PaTwD">
<property role="3oM_SC" value="to" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqm" role="1PaTwD">
<property role="3oM_SC" value="snodes" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqn" role="1PaTwD">
<property role="3oM_SC" value="is" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqo" role="1PaTwD">
<property role="3oM_SC" value="in" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqp" role="1PaTwD">
<property role="3oM_SC" value="at" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqq" role="1PaTwD">
<property role="3oM_SC" value="least" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqr" role="1PaTwD">
<property role="3oM_SC" value="one" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqs" role="1PaTwD">
<property role="3oM_SC" value="constraint" />
</node>
<node concept="3oM_SD" id="1H_6AUT0Wqt" role="1PaTwD">
<property role="3oM_SC" value="argument" />
</node>
</node>
</node>
<node concept="2Gpval" id="1H_6AUT0Wqu" role="3cqZAp">
<node concept="2GrKxI" id="1H_6AUT0Wqv" role="2Gsz3X">
<property role="TrG5h" value="arg" />
</node>
<node concept="2OqwBi" id="1H_6AUT0Wqw" role="2GsD0m">
<node concept="liA8E" id="1H_6AUT0Wqx" role="2OqNvi">
<ref role="37wK5l" to="av0y:~AndItem.arguments()" resolve="arguments" />
</node>
<node concept="37vLTw" id="1H_6AUT0Wqy" role="2Oq$k0">
<ref role="3cqZAo" node="1H_6AUT0WqR" resolve="item" />
</node>
</node>
<node concept="3clFbS" id="1H_6AUT0Wqz" role="2LFqv$">
<node concept="3clFbJ" id="1H_6AUT0Wq$" role="3cqZAp">
<node concept="2ZW3vV" id="1H_6AUT0Wq_" role="3clFbw">
<node concept="3uibUv" id="1H_6AUT0WqA" role="2ZW6by">
<ref role="3uigEE" to="6exd:1msb0mq9ID4" resolve="DataNode" />
</node>
<node concept="2GrUjf" id="1H_6AUT0WqB" role="2ZW6bz">
<ref role="2Gs0qQ" node="1H_6AUT0Wqv" resolve="arg" />
</node>
<node concept="2OqwBi" id="1H_6AUT0Wqw" role="2GsD0m">
<node concept="liA8E" id="1H_6AUT0Wqx" role="2OqNvi">
<ref role="37wK5l" to="av0y:~AndItem.arguments()" resolve="arguments" />
</node>
<node concept="3clFbS" id="1H_6AUT0WqC" role="3clFbx">
<node concept="3clFbF" id="1H_6AUT0WqD" role="3cqZAp">
<node concept="2OqwBi" id="1H_6AUT0WqE" role="3clFbG">
<node concept="1eOMI4" id="1H_6AUT0WqF" role="2Oq$k0">
<node concept="10QFUN" id="1H_6AUT0WqG" role="1eOMHV">
<node concept="3uibUv" id="1H_6AUT0WqH" role="10QFUM">
<ref role="3uigEE" to="6exd:1msb0mq9ID4" resolve="DataNode" />
</node>
<node concept="2GrUjf" id="1H_6AUT0WqI" role="10QFUP">
<ref role="2Gs0qQ" node="1H_6AUT0Wqv" resolve="arg" />
<node concept="37vLTw" id="1H_6AUT0Wqy" role="2Oq$k0">
<ref role="3cqZAo" node="1H_6AUT0WqR" resolve="item" />
</node>
</node>
<node concept="3clFbS" id="1H_6AUT0Wqz" role="2LFqv$">
<node concept="3clFbJ" id="1H_6AUT0Wq$" role="3cqZAp">
<node concept="2ZW3vV" id="1H_6AUT0Wq_" role="3clFbw">
<node concept="3uibUv" id="1H_6AUT0WqA" role="2ZW6by">
<ref role="3uigEE" to="6exd:1msb0mq9ID4" resolve="DataNode" />
</node>
<node concept="2GrUjf" id="1H_6AUT0WqB" role="2ZW6bz">
<ref role="2Gs0qQ" node="1H_6AUT0Wqv" resolve="arg" />
</node>
</node>
<node concept="3clFbS" id="1H_6AUT0WqC" role="3clFbx">
<node concept="3clFbF" id="1H_6AUT0WqD" role="3cqZAp">
<node concept="2OqwBi" id="1H_6AUT0WqE" role="3clFbG">
<node concept="1eOMI4" id="1H_6AUT0WqF" role="2Oq$k0">
<node concept="10QFUN" id="1H_6AUT0WqG" role="1eOMHV">
<node concept="3uibUv" id="1H_6AUT0WqH" role="10QFUM">
<ref role="3uigEE" to="6exd:1msb0mq9ID4" resolve="DataNode" />
</node>
<node concept="2GrUjf" id="1H_6AUT0WqI" role="10QFUP">
<ref role="2Gs0qQ" node="1H_6AUT0Wqv" resolve="arg" />
</node>
</node>
</node>
</node>
<node concept="liA8E" id="1H_6AUT0WqJ" role="2OqNvi">
<ref role="37wK5l" to="6exd:104EUzFOBnD" resolve="acceptVisitor" />
<node concept="37vLTw" id="1H_6AUT0WqK" role="37wK5m">
<ref role="3cqZAo" node="1H_6AUT0Wqd" resolve="checker" />
<node concept="liA8E" id="1H_6AUT0WqJ" role="2OqNvi">
<ref role="37wK5l" to="6exd:104EUzFOBnD" resolve="acceptVisitor" />
<node concept="37vLTw" id="1H_6AUT0WqK" role="37wK5m">
<ref role="3cqZAo" node="1H_6AUT0Wqd" resolve="checker" />
</node>
</node>
</node>
</node>
@ -1355,31 +1364,27 @@
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1H_6AUT0WqL" role="3cqZAp">
<node concept="2OqwBi" id="1H_6AUT0WqM" role="3clFbG">
<node concept="37vLTw" id="1H_6AUT0WqN" role="2Oq$k0">
<ref role="3cqZAo" node="1H_6AUT0Wqd" resolve="checker" />
</node>
<node concept="liA8E" id="1H_6AUT0WqO" role="2OqNvi">
<ref role="37wK5l" node="1H_6AUSI_s1" resolve="isFound" />
<node concept="3clFbF" id="1H_6AUT0WqL" role="3cqZAp">
<node concept="2OqwBi" id="1H_6AUT0WqM" role="3clFbG">
<node concept="37vLTw" id="1H_6AUT0WqN" role="2Oq$k0">
<ref role="3cqZAo" node="1H_6AUT0Wqd" resolve="checker" />
</node>
<node concept="liA8E" id="1H_6AUT0WqO" role="2OqNvi">
<ref role="37wK5l" node="1H_6AUSI_s1" resolve="isFound" />
</node>
</node>
</node>
</node>
</node>
<node concept="10P_77" id="1H_6AUT0WqQ" role="3clF45" />
<node concept="37vLTG" id="1H_6AUT0WqR" role="3clF46">
<property role="TrG5h" value="item" />
<node concept="3uibUv" id="1H_6AUT0WqS" role="1tU5fm">
<ref role="3uigEE" to="av0y:~AndItem" resolve="AndItem" />
<node concept="10P_77" id="1H_6AUT0WqQ" role="3clF45" />
<node concept="37vLTG" id="1H_6AUT0WqR" role="3clF46">
<property role="TrG5h" value="item" />
<node concept="3uibUv" id="1H_6AUT0WqS" role="1tU5fm">
<ref role="3uigEE" to="av0y:~AndItem" resolve="AndItem" />
</node>
</node>
<node concept="3Tm1VV" id="tyIfzBB4pi" role="1B3o_S" />
</node>
<node concept="3Tm6S6" id="1H_6AUT0WqP" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="1H_6AUSGSGm" role="jymVt" />
<node concept="312cEu" id="1H_6AUSGVEF" role="jymVt">
<property role="TrG5h" value="SNodeAccessChecker" />
<node concept="2tJIrI" id="1H_6AUSH1VS" role="jymVt" />
<node concept="2tJIrI" id="tyIfzBB9w6" role="jymVt" />
<node concept="3clFb_" id="1H_6AUSI_s1" role="jymVt">
<property role="TrG5h" value="isFound" />
<node concept="3clFbS" id="1H_6AUSI_s4" role="3clF47">
@ -1393,7 +1398,7 @@
<node concept="10P_77" id="1H_6AUSI_UY" role="3clF45" />
</node>
<node concept="2tJIrI" id="1H_6AUSI$iZ" role="jymVt" />
<node concept="3Tm6S6" id="1H_6AUSGUus" role="1B3o_S" />
<node concept="3Tm1VV" id="tyIfzBB3Xr" role="1B3o_S" />
<node concept="3uibUv" id="1H_6AUSH1ra" role="1zkMxy">
<ref role="3uigEE" to="6exd:6HT7BWBQcxv" resolve="DataForm.Visitor.Stub" />
<node concept="3uibUv" id="1H_6AUSH2R0" role="11_B2D">
@ -1648,7 +1653,7 @@
<node concept="37vLTG" id="1H_6AUT3m5k" role="3clF46">
<property role="TrG5h" value="info" />
<node concept="3uibUv" id="1H_6AUT3mcx" role="1tU5fm">
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramAnalysisInfoBuilder.Info" />
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
</node>
<node concept="37vLTG" id="1H_6AUT3jQL" role="3clF46">
@ -1714,7 +1719,7 @@
<node concept="37vLTG" id="1H_6AUT4mKo" role="3clF46">
<property role="TrG5h" value="info" />
<node concept="3uibUv" id="1H_6AUT4mKp" role="1tU5fm">
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramAnalysisInfoBuilder.Info" />
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
</node>
<node concept="37vLTG" id="1H_6AUT4mKq" role="3clF46">
@ -2001,7 +2006,7 @@
<property role="TrG5h" value="info" />
<node concept="3Tm6S6" id="1H_6AUT3lHE" role="1B3o_S" />
<node concept="3uibUv" id="1H_6AUT3lJI" role="1tU5fm">
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramAnalysisInfoBuilder.Info" />
<ref role="3uigEE" node="1H_6AUSU96G" resolve="ProgramGenInfoBuilder.ProgramGenInfo" />
</node>
</node>
<node concept="312cEg" id="1H_6AUT3kKV" role="jymVt">

View File

@ -15,7 +15,7 @@
</models>
<external-templates />
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="9" />
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="8" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="1" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
@ -28,7 +28,7 @@
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="1" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="15" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="13" />
<language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
</languageVersions>
@ -52,7 +52,7 @@
<dependency reexport="false">1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="9" />
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="8" />
<language slang="l:443f4c36-fcf5-4eb6-9500-8d06ed259e3e:jetbrains.mps.baseLanguage.classifiers" version="0" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="1" />
@ -82,7 +82,7 @@
<language slang="l:982eb8df-2c96-4bd7-9963-11712ea622e5:jetbrains.mps.lang.resources" version="2" />
<language slang="l:0eddeefa-c2d6-4437-bc2c-de50fd4ce470:jetbrains.mps.lang.script" version="1" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="15" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="13" />
<language slang="l:cba985fe-1e96-4f16-9f8d-b07434405d4f:jetbrains.mps.lang.smodel.types" version="0" />
<language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="7" />
<language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />

View File

@ -36,6 +36,7 @@
<language slang="l:cba985fe-1e96-4f16-9f8d-b07434405d4f:jetbrains.mps.lang.smodel.types" version="0" />
<language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="7" />
<language slang="l:8585453e-6bfb-4d80-98de-b16074f1d86c:jetbrains.mps.lang.test" version="2" />
<language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:35320f26-77cb-4c55-be9f-a97a27770af1:jetbrains.mps.logic" version="2" />
<language slang="l:3a1f0f04-b5e0-43be-884e-b856bfdeca21:jetbrains.mps.typechecking.testlang" version="0" />

View File

@ -218,9 +218,6 @@
<concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
<child id="1081516765348" name="expression" index="3fr31v" />
</concept>
<concept id="1160998861373" name="jetbrains.mps.baseLanguage.structure.AssertStatement" flags="nn" index="1gVbGN">
<child id="1160998896846" name="condition" index="1gVkn0" />
</concept>
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
<child id="1068499141038" name="actualArgument" index="37wK5m" />
@ -359,6 +356,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="role_DebugInfo" 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="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text">
<concept id="155656958578482948" name="jetbrains.mps.lang.text.structure.Word" flags="ng" index="3oM_SD">
@ -1888,6 +1892,22 @@
</node>
</node>
<node concept="3clFbH" id="7WKNeR9$3Zm" role="3cqZAp" />
<node concept="3cpWs8" id="1H_6AUTHthD" role="3cqZAp">
<node concept="3cpWsn" id="1H_6AUTHthE" role="3cpWs9">
<property role="TrG5h" value="spec" />
<node concept="3uibUv" id="1H_6AUTHthF" role="1tU5fm">
<ref role="3uigEE" to="av0y:~IncrementalProgramSpec" resolve="IncrementalProgramSpec" />
</node>
<node concept="2OqwBi" id="1H_6AUTHwI9" role="33vP2m">
<node concept="37vLTw" id="1H_6AUTHw6a" role="2Oq$k0">
<ref role="3cqZAo" node="Hg6Enc9a3G" resolve="prev" />
</node>
<node concept="liA8E" id="1H_6AUTH$10" role="2OqNvi">
<ref role="37wK5l" node="1H_6AUT8vBd" resolve="getProgramSpec" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="Hg6Enc7CPK" role="3cqZAp">
<node concept="3cpWsn" id="Hg6Enc7CPL" role="3cpWs9">
<property role="TrG5h" value="progEval" />
@ -1928,38 +1948,43 @@
</node>
<node concept="3Tm1VV" id="7WKNeR9yo$p" role="1B3o_S" />
<node concept="3clFbS" id="7WKNeR9yo$x" role="3clF47">
<node concept="1gVbGN" id="1H_6AUTkDJX" role="3cqZAp">
<node concept="3y3z36" id="1H_6AUTkEMp" role="1gVkn0">
<node concept="10Nm6u" id="1H_6AUTkF3A" role="3uHU7w" />
<node concept="2OqwBi" id="1H_6AUTkEcR" role="3uHU7B">
<node concept="37vLTw" id="1H_6AUTkDXP" role="2Oq$k0">
<ref role="3cqZAo" node="Hg6Enc9a3G" resolve="prev" />
<node concept="1X3_iC" id="tyIfzBA2Wf" role="lGtFl">
<property role="3V$3am" value="statement" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
<node concept="3clFbF" id="1H_6AUT8zXg" role="8Wnug">
<node concept="37vLTI" id="1H_6AUT8$eN" role="3clFbG">
<node concept="2OqwBi" id="1H_6AUT8$$b" role="37vLTx">
<node concept="37vLTw" id="1H_6AUT8$uA" role="2Oq$k0">
<ref role="3cqZAo" node="7WKNeR9yo$m" resolve="config" />
</node>
<node concept="liA8E" id="1H_6AUT8$LY" role="2OqNvi">
<ref role="37wK5l" to="w7la:~EvaluationSession$Config.withIncrSpec(jetbrains.mps.logic.reactor.program.IncrementalProgramSpec)" resolve="withIncrSpec" />
<node concept="10M0yZ" id="1H_6AUTGRq$" role="37wK5m">
<ref role="3cqZAo" to="av0y:~IncrementalProgramSpec.DefaultSpec" resolve="DefaultSpec" />
<ref role="1PxDUh" to="av0y:~IncrementalProgramSpec" resolve="IncrementalProgramSpec" />
</node>
</node>
</node>
<node concept="liA8E" id="1H_6AUTkEBk" role="2OqNvi">
<ref role="37wK5l" node="1H_6AUT8vBd" resolve="getProgramSpec" />
<node concept="37vLTw" id="1H_6AUT8zXe" role="37vLTJ">
<ref role="3cqZAo" node="7WKNeR9yo$m" resolve="config" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1H_6AUT8zXg" role="3cqZAp">
<node concept="37vLTI" id="1H_6AUT8$eN" role="3clFbG">
<node concept="2OqwBi" id="1H_6AUT8$$b" role="37vLTx">
<node concept="37vLTw" id="1H_6AUT8$uA" role="2Oq$k0">
<node concept="3clFbF" id="1H_6AUTHlkR" role="3cqZAp">
<node concept="37vLTI" id="1H_6AUTHlkS" role="3clFbG">
<node concept="2OqwBi" id="1H_6AUTHlkT" role="37vLTx">
<node concept="37vLTw" id="1H_6AUTHlkU" role="2Oq$k0">
<ref role="3cqZAo" node="7WKNeR9yo$m" resolve="config" />
</node>
<node concept="liA8E" id="1H_6AUT8$LY" role="2OqNvi">
<node concept="liA8E" id="1H_6AUTHlkV" role="2OqNvi">
<ref role="37wK5l" to="w7la:~EvaluationSession$Config.withIncrSpec(jetbrains.mps.logic.reactor.program.IncrementalProgramSpec)" resolve="withIncrSpec" />
<node concept="2OqwBi" id="1H_6AUT8_9Y" role="37wK5m">
<node concept="37vLTw" id="1H_6AUT8$Yj" role="2Oq$k0">
<ref role="3cqZAo" node="Hg6Enc9a3G" resolve="prev" />
</node>
<node concept="liA8E" id="1H_6AUT8_A9" role="2OqNvi">
<ref role="37wK5l" node="1H_6AUT8vBd" resolve="getProgramSpec" />
</node>
<node concept="37vLTw" id="1H_6AUTH_aP" role="37wK5m">
<ref role="3cqZAo" node="1H_6AUTHthE" resolve="spec" />
</node>
</node>
</node>
<node concept="37vLTw" id="1H_6AUT8zXe" role="37vLTJ">
<node concept="37vLTw" id="1H_6AUTHlkX" role="37vLTJ">
<ref role="3cqZAo" node="7WKNeR9yo$m" resolve="config" />
</node>
</node>