Update the copyright notice with the license. Remove obsolete artefacts and "generated" markings.

This commit is contained in:
Fedor Isakov 2017-06-05 15:16:19 +02:00
parent 7c5274aacb
commit 90044e69c7
63 changed files with 1233 additions and 1361 deletions

View File

@ -0,0 +1,6 @@
<component name="CopyrightManager">
<copyright>
<option name="myName" value="Apache 2.0" />
<option name="notice" value="Copyright 2014-&amp;#36;today.year JetBrains s.r.o.&#10;&#10;Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);&#10;you may not use this file except in compliance with the License.&#10;You may obtain a copy of the License at&#10;&#10;http://www.apache.org/licenses/LICENSE-2.0&#10;&#10;Unless required by applicable law or agreed to in writing, software&#10;distributed under the License is distributed on an &quot;AS IS&quot; BASIS,&#10;WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&#10;See the License for the specific language governing permissions and&#10;limitations under the License." />
</copyright>
</component>

View File

@ -1,3 +1,7 @@
<component name="CopyrightManager">
<settings default="" />
<settings default="Apache 2.0">
<module2copyright>
<element module="source" copyright="Apache 2.0" />
</module2copyright>
</settings>
</component>

View File

@ -0,0 +1,3 @@
<component name="DependencyValidationManager">
<scope name="source" pattern="file[API]:src//*||file[Core]:src//*" />
</component>

View File

@ -2,41 +2,20 @@
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="kotlin-language" name="Kotlin">
<configuration version="1">
<option name="compilerInfo">
<KotlinCompilerInfo>
<option name="compilerSettings">
<CompilerSettings />
</option>
<option name="k2jsCompilerArguments">
<K2JSCompilerArguments />
</option>
<option name="k2jvmCompilerArguments">
<K2JVMCompilerArguments>
<option name="jvmTarget" value="1.8" />
</K2JVMCompilerArguments>
</option>
<option name="_commonCompilerArguments">
<DummyImpl>
<option name="pluginClasspaths">
<array />
</option>
<option name="coroutinesWarn" value="true" />
<option name="pluginOptions">
<array />
</option>
</DummyImpl>
</option>
</KotlinCompilerInfo>
</option>
<option name="useProjectSettings" value="false" />
<option name="versionInfo">
<KotlinVersionInfo>
<option name="apiLevel" value="1.1" />
<option name="languageLevel" value="1.1" />
<option name="targetPlatformName" value="JVM 1.8" />
</KotlinVersionInfo>
</option>
<configuration version="2" platform="JVM 1.8" useProjectSettings="false">
<compilerSettings />
<compilerArguments>
<option name="jvmTarget" value="1.8" />
<option name="languageVersion" value="1.1" />
<option name="apiVersion" value="1.1" />
<option name="pluginClasspaths">
<array />
</option>
<option name="coroutinesWarn" value="true" />
<option name="pluginOptions">
<array />
</option>
</compilerArguments>
</configuration>
</facet>
</component>

View File

@ -1,8 +1,25 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
/**
* Not very useful now.
* Serves as an abstract superclass for implementations, as a mixin of Instructible and Queryable.
*
* @author Fedor Isakov
*/
public abstract class AbstractSolver implements Instructible, Queryable {

View File

@ -1,6 +1,21 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
/*Generated by MPS */
import jetbrains.mps.logic.reactor.logical.LogicalContext;
import jetbrains.mps.logic.reactor.program.Constraint;
@ -9,6 +24,8 @@ import java.util.List;
/**
* Represents a run-time object corresponding to an actual constraint.
*
* @author Fedor Isakov
*/
public interface ConstraintOccurrence {

View File

@ -1,19 +1,35 @@
package jetbrains.mps.logic.reactor.evaluation;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.evaluation;
/**
* Thrown in case evaluation fails.
*
* @author Fedor Isakov
*/
public class EvaluationFailureException extends RuntimeException {
public EvaluationFailureException(String message) {
super(message);
}
public EvaluationFailureException(String message) {
super(message);
}
public EvaluationFailureException(Throwable cause) {
super(cause);
}
public EvaluationFailureException(Throwable cause) {
super(cause);
}
}

View File

@ -1,21 +1,41 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
/*Generated by MPS */
import jetbrains.mps.logic.reactor.logical.LogicalContext;
import jetbrains.mps.logic.reactor.program.*;
import java.util.List;
import jetbrains.mps.logic.reactor.program.Constraint;
import jetbrains.mps.logic.reactor.program.Predicate;
import jetbrains.mps.logic.reactor.program.PredicateSymbol;
import jetbrains.mps.logic.reactor.program.Program;
/**
* The starting point to evaluate a program.
*
* <p>
* The session is started with {@code newSession}, provided the backend has been initialized.
*
* <p>
* The backend is supposed to be provided at startup.
*
* @author Fedor Isakov
*/
public abstract class EvaluationSession {
private static EvaluationSession.Backend ourBackend;
public static EvaluationSession current() {
if (ourBackend == null) {
throw new IllegalStateException("no backend");
@ -30,6 +50,36 @@ public abstract class EvaluationSession {
return ourBackend.createConfig(program);
}
protected static void setBackend(EvaluationSession.Backend backend) {
if (ourBackend != null) {
throw new IllegalStateException("backend already assigned");
}
ourBackend = backend;
}
protected static void clearBackend(EvaluationSession.Backend backend) {
if (ourBackend != backend) {
throw new IllegalStateException("illegal access");
}
ourBackend = null;
}
public abstract SessionSolver sessionSolver();
public abstract StoreView storeView();
public abstract PredicateInvocation invocation(Predicate predicate, LogicalContext logicalContext);
public abstract ConstraintOccurrence occurrence(Constraint constraint, LogicalContext logicalContext);
protected interface Backend {
EvaluationSession current();
EvaluationSession.Config createConfig(Program program);
}
public static abstract class Config {
public abstract EvaluationSession.Config withPredicates(PredicateSymbol... predicateSymbols);
@ -44,36 +94,4 @@ public abstract class EvaluationSession {
}
public abstract SessionSolver sessionSolver();
public abstract StoreView storeView();
public abstract PredicateInvocation invocation(Predicate predicate, LogicalContext logicalContext);
public abstract ConstraintOccurrence occurrence(Constraint constraint, LogicalContext logicalContext);
protected static void setBackend(EvaluationSession.Backend backend) {
if (ourBackend != null) {
throw new IllegalStateException("backend already assigned");
}
ourBackend = backend;
}
protected static void clearBackend(EvaluationSession.Backend backend) {
if (ourBackend != backend) {
throw new IllegalStateException("illegal access");
}
ourBackend = null;
}
protected interface Backend {
EvaluationSession current();
EvaluationSession.Config createConfig(Program program);
}
private static EvaluationSession.Backend ourBackend;
}

View File

@ -1,68 +1,96 @@
package jetbrains.mps.logic.reactor.evaluation;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.evaluation;
/**
* An interface to be implemented by clients wishing to be notified of the events during evaluation.
*
* @author Fedor Isakov
*/
public interface EvaluationTrace {
void activate(ConstraintOccurrence occurrence);
EvaluationTrace NULL = new EvaluationTrace() {
void reactivate(ConstraintOccurrence occurrence);
public void activate(ConstraintOccurrence occurrence) {
}
void suspend(ConstraintOccurrence occurrence);
public void reactivate(ConstraintOccurrence occurrence) {
}
void discard(ConstraintOccurrence occurrence);
public void suspend(ConstraintOccurrence occurrence) {
}
void trying(MatchRule matchRule);
public void discard(ConstraintOccurrence occurrence) {
}
void reject(MatchRule matchRule);
public void trying(MatchRule matchRule) {
}
void trigger(MatchRule matchRule);
public void reject(MatchRule matchRule) {
}
void retry(MatchRule matchRule);
public void trigger(MatchRule matchRule) {
}
void finish(MatchRule matchRule);
public void retry(MatchRule matchRule) {
}
void tell(PredicateInvocation invocation);
public void finish(MatchRule matchRule) {
}
void ask(boolean result, PredicateInvocation invocation);
public void tell(PredicateInvocation invocation) {
}
void failure(EvaluationFailureException fail);
public void ask(boolean result, PredicateInvocation invocation) {
}
@Deprecated
void reportFailure(String message);
public void failure(EvaluationFailureException fail) {
}
EvaluationTrace NULL = new EvaluationTrace() {
public void reportFailure(String message) {
}
public void activate(ConstraintOccurrence occurrence) {
}
public void reactivate(ConstraintOccurrence occurrence) {
}
public void suspend(ConstraintOccurrence occurrence) {
}
public void discard(ConstraintOccurrence occurrence) {
}
public void trying(MatchRule matchRule) {
}
public void reject(MatchRule matchRule) {
}
public void trigger(MatchRule matchRule) {
}
public void retry(MatchRule matchRule) {
}
public void finish(MatchRule matchRule) {
}
public void tell(PredicateInvocation invocation) {
}
public void ask(boolean result, PredicateInvocation invocation) {
}
public void failure(EvaluationFailureException fail) {
}
public void reportFailure(String message) {
}
};
};
void activate(ConstraintOccurrence occurrence);
void reactivate(ConstraintOccurrence occurrence);
void suspend(ConstraintOccurrence occurrence);
void discard(ConstraintOccurrence occurrence);
void trying(MatchRule matchRule);
void reject(MatchRule matchRule);
void trigger(MatchRule matchRule);
void retry(MatchRule matchRule);
void finish(MatchRule matchRule);
void tell(PredicateInvocation invocation);
void ask(boolean result, PredicateInvocation invocation);
void failure(EvaluationFailureException fail);
@Deprecated
void reportFailure(String message);
}

View File

@ -1,9 +1,26 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
/*Generated by MPS */
/**
* Abstract interface to a predicate.
*
* @author Fedor Isakov
*/
public interface Instructible {

View File

@ -1,18 +1,35 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
/*Generated by MPS */
import jetbrains.mps.logic.reactor.program.Rule;
/**
* A binding of a rule and the constraints that matched its head.
*
* @author Fedor Isakov
*/
public interface MatchRule {
Rule rule();
Rule rule();
Iterable<ConstraintOccurrence> matchHeadKept();
Iterable<ConstraintOccurrence> matchHeadKept();
Iterable<ConstraintOccurrence> matchHeadReplaced();
Iterable<ConstraintOccurrence> matchHeadReplaced();
}

View File

@ -1,6 +1,21 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
/*Generated by MPS */
import jetbrains.mps.logic.reactor.logical.LogicalContext;
import jetbrains.mps.logic.reactor.program.Predicate;
@ -8,7 +23,9 @@ import jetbrains.mps.logic.reactor.program.Predicate;
import java.util.List;
/**
* A run-time object representing invocation of a predicate.
* A run-time object representing invocation of a predicate.
*
* @author Fedor Isakov
*/
public interface PredicateInvocation {

View File

@ -1,9 +1,26 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
/*Generated by MPS */
/**
* Abstract interface to a predicate.
*
* @author Fedor Isakov
*/
public interface Queryable extends Instructible {

View File

@ -1,6 +1,21 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
/*Generated by MPS */
import jetbrains.mps.logic.reactor.logical.LogicalContext;
import jetbrains.mps.logic.reactor.program.AndItem;
@ -12,9 +27,14 @@ import java.util.Map;
/**
* Is used to provide an interface for handlers and solvers working together in a single session.
*
* @author Fedor Isakov
*/
public abstract class SessionSolver implements Queryable, Instructible {
private Map<PredicateSymbol, AbstractSolver> solvers = new HashMap<PredicateSymbol, AbstractSolver>();
private EvaluationTrace tracer = EvaluationTrace.NULL;
public void init(PredicateSymbol... predicateSymbols) {
registerSymbols(predicateSymbols);
}
@ -72,8 +92,4 @@ public abstract class SessionSolver implements Queryable, Instructible {
}
}
private Map<PredicateSymbol, AbstractSolver> solvers = new HashMap<PredicateSymbol, AbstractSolver>();
private EvaluationTrace tracer = EvaluationTrace.NULL;
}

View File

@ -1,9 +1,27 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.evaluation;
import jetbrains.mps.logic.reactor.program.ConstraintSymbol;
/**
* A read-only view on the constraints store.
*
* @author Fedor Isakov
*/
public interface StoreView {

View File

@ -1,441 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<debug-info version="2">
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123140:jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123155:jetbrains.mps.baseLanguage.structure.ExpressionStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068390468200:jetbrains.mps.baseLanguage.structure.FieldDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1144226303539:jetbrains.mps.baseLanguage.structure.ForeachStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123159:jetbrains.mps.baseLanguage.structure.IfStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123165:jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068581242864:jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068581242878:jetbrains.mps.baseLanguage.structure.ReturnStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123157:jetbrains.mps.baseLanguage.structure.Statement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070462154015:jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1081236700938:jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070475587102:jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1164991038168:jetbrains.mps.baseLanguage.structure.ThrowStatement" />
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/2394628030058821331">
<file name="EvaluationTrace.java">
<node id="1568093847249272547" at="8,0,9,0" concept="5" trace="activate#(Ljetbrains/mps/logic/reactor/evaluation/ConstraintOccurrence;)V" />
<node id="1568093847249273983" at="10,0,11,0" concept="5" trace="reactivate#(Ljetbrains/mps/logic/reactor/evaluation/ConstraintOccurrence;)V" />
<node id="1568093847249274899" at="12,0,13,0" concept="5" trace="suspend#(Ljetbrains/mps/logic/reactor/evaluation/ConstraintOccurrence;)V" />
<node id="1568093847249275822" at="14,0,15,0" concept="5" trace="discard#(Ljetbrains/mps/logic/reactor/evaluation/ConstraintOccurrence;)V" />
<node id="1568093847249552578" at="16,0,17,0" concept="5" trace="trying#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="3333055194078038340" at="18,0,19,0" concept="5" trace="reject#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="3363149567546654801" at="20,0,21,0" concept="5" trace="trigger#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="2986800734055686125" at="22,0,23,0" concept="5" trace="retry#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="3363149567546659619" at="24,0,25,0" concept="5" trace="finish#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="3363149567546696093" at="26,0,27,0" concept="5" trace="tell#(Ljetbrains/mps/logic/reactor/evaluation/PredicateInvocation;)V" />
<node id="3363149567546698865" at="28,0,29,0" concept="5" trace="ask#(ZLjetbrains/mps/logic/reactor/evaluation/PredicateInvocation;)V" />
<node id="8638394859473148184" at="30,0,31,0" concept="5" trace="failure#(Ljetbrains/mps/logic/reactor/evaluation/EvaluationFailureException;)V" />
<node id="8344829839210112466" at="32,0,34,0" concept="5" trace="reportFailure#(Ljava/lang/String;)V" />
<node id="1568093847249278110" at="37,0,39,0" concept="5" trace="activate#(Ljetbrains/mps/logic/reactor/evaluation/ConstraintOccurrence;)V" />
<node id="1568093847249278118" at="39,0,41,0" concept="5" trace="reactivate#(Ljetbrains/mps/logic/reactor/evaluation/ConstraintOccurrence;)V" />
<node id="1568093847249278126" at="41,0,43,0" concept="5" trace="suspend#(Ljetbrains/mps/logic/reactor/evaluation/ConstraintOccurrence;)V" />
<node id="1568093847249278134" at="43,0,45,0" concept="5" trace="discard#(Ljetbrains/mps/logic/reactor/evaluation/ConstraintOccurrence;)V" />
<node id="3363149567546683107" at="45,0,47,0" concept="5" trace="trying#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="3333055194078066890" at="47,0,49,0" concept="5" trace="reject#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="1568093847249562172" at="49,0,51,0" concept="5" trace="trigger#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="2986800734055864889" at="51,0,53,0" concept="5" trace="retry#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="3363149567546683115" at="53,0,55,0" concept="5" trace="finish#(Ljetbrains/mps/logic/reactor/evaluation/MatchRule;)V" />
<node id="3363149567546702045" at="55,0,57,0" concept="5" trace="tell#(Ljetbrains/mps/logic/reactor/evaluation/PredicateInvocation;)V" />
<node id="3363149567546702053" at="57,0,59,0" concept="5" trace="ask#(ZLjetbrains/mps/logic/reactor/evaluation/PredicateInvocation;)V" />
<node id="8638394859473171854" at="59,0,61,0" concept="5" trace="failure#(Ljetbrains/mps/logic/reactor/evaluation/EvaluationFailureException;)V" />
<node id="5160444407776325559" at="61,0,63,0" concept="5" trace="reportFailure#(Ljava/lang/String;)V" />
<node id="5160444407776320865" at="35,0,65,0" concept="9" trace="NULL" />
<scope id="1568093847249278117" at="37,59,37,59" />
<scope id="1568093847249278125" at="39,61,39,61" />
<scope id="1568093847249278133" at="41,58,41,58" />
<scope id="1568093847249278141" at="43,58,43,58" />
<scope id="3363149567546683114" at="45,45,45,45" />
<scope id="3333055194078066897" at="47,45,47,45" />
<scope id="1568093847249562179" at="49,46,49,46" />
<scope id="2986800734055864896" at="51,44,51,44" />
<scope id="3363149567546683122" at="53,45,53,45" />
<scope id="3363149567546702052" at="55,54,55,54" />
<scope id="3363149567546702062" at="57,69,57,69" />
<scope id="8638394859473171861" at="59,58,59,58" />
<scope id="5160444407776325565" at="61,47,61,47" />
<scope id="1568093847249272547" at="8,0,9,0">
<var name="occurrence" id="1568093847249273451" />
</scope>
<scope id="1568093847249273983" at="10,0,11,0">
<var name="occurrence" id="1568093847249273984" />
</scope>
<scope id="1568093847249274899" at="12,0,13,0">
<var name="occurrence" id="1568093847249274900" />
</scope>
<scope id="1568093847249275822" at="14,0,15,0">
<var name="occurrence" id="1568093847249275823" />
</scope>
<scope id="1568093847249552578" at="16,0,17,0">
<var name="matchRule" id="6976745534798433645" />
</scope>
<scope id="3333055194078038340" at="18,0,19,0">
<var name="matchRule" id="3333055194078038341" />
</scope>
<scope id="3363149567546654801" at="20,0,21,0">
<var name="matchRule" id="3363149567546654802" />
</scope>
<scope id="2986800734055686125" at="22,0,23,0">
<var name="matchRule" id="2986800734055689899" />
</scope>
<scope id="3363149567546659619" at="24,0,25,0">
<var name="matchRule" id="3363149567546682377" />
</scope>
<scope id="3363149567546696093" at="26,0,27,0">
<var name="invocation" id="3363149567546697590" />
</scope>
<scope id="3363149567546698865" at="28,0,29,0">
<var name="invocation" id="3363149567546698866" />
<var name="result" id="3363149567546700611" />
</scope>
<scope id="8638394859473148184" at="30,0,31,0">
<var name="fail" id="8638394859473148185" />
</scope>
<scope id="8344829839210112466" at="32,0,34,0">
<var name="message" id="8344829839210112700" />
</scope>
<scope id="1568093847249278110" at="37,0,39,0">
<var name="occurrence" id="1568093847249278111" />
</scope>
<scope id="1568093847249278118" at="39,0,41,0">
<var name="occurrence" id="1568093847249278119" />
</scope>
<scope id="1568093847249278126" at="41,0,43,0">
<var name="occurrence" id="1568093847249278127" />
</scope>
<scope id="1568093847249278134" at="43,0,45,0">
<var name="occurrence" id="1568093847249278135" />
</scope>
<scope id="3363149567546683107" at="45,0,47,0">
<var name="matchRule" id="3363149567546683108" />
</scope>
<scope id="3333055194078066890" at="47,0,49,0">
<var name="matchRule" id="3333055194078066891" />
</scope>
<scope id="1568093847249562172" at="49,0,51,0">
<var name="matchRule" id="1568093847249562173" />
</scope>
<scope id="2986800734055864889" at="51,0,53,0">
<var name="matchRule" id="2986800734055864890" />
</scope>
<scope id="3363149567546683115" at="53,0,55,0">
<var name="matchRule" id="3363149567546683116" />
</scope>
<scope id="3363149567546702045" at="55,0,57,0">
<var name="invocation" id="3363149567546702046" />
</scope>
<scope id="3363149567546702053" at="57,0,59,0">
<var name="invocation" id="3363149567546702056" />
<var name="result" id="3363149567546702054" />
</scope>
<scope id="8638394859473171854" at="59,0,61,0">
<var name="fail" id="8638394859473171855" />
</scope>
<scope id="5160444407776325559" at="61,0,63,0">
<var name="message" id="5160444407776325560" />
</scope>
<unit id="5160444407776325513" at="35,29,64,3" name="jetbrains.mps.logic.reactor.evaluation.EvaluationTrace$1" />
<unit id="2394628030058821331" at="6,0,66,0" name="jetbrains.mps.logic.reactor.evaluation.EvaluationTrace" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/4787618122020806150">
<file name="PredicateInvocation.java">
<node id="4787618122020806193" at="10,0,11,0" concept="5" trace="predicate#()Ljetbrains/mps/logic/reactor/program/Predicate;" />
<node id="4787618122020806252" at="12,0,13,0" concept="5" trace="arguments#()Ljava/util/List;" />
<scope id="4787618122020806193" at="10,0,11,0" />
<scope id="4787618122020806252" at="12,0,13,0" />
<unit id="4787618122020806150" at="8,0,15,0" name="jetbrains.mps.logic.reactor.evaluation.PredicateInvocation" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/6317379717812926797">
<file name="EvaluationSession.java">
<node id="6317379717813100052" at="15,29,16,52" concept="12" />
<node id="6317379717813100659" at="17,5,18,32" concept="7" />
<node id="6168558935191972039" at="22,29,23,52" concept="12" />
<node id="6168558935191972049" at="24,5,25,44" concept="7" />
<node id="6317379717813101174" at="30,0,31,0" concept="5" trace="withPredicates#(null)Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession/Config;" />
<node id="6317379717813105701" at="32,0,33,0" concept="5" trace="withTrace#(Ljetbrains/mps/logic/reactor/evaluation/EvaluationTrace;)Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession/Config;" />
<node id="6168558935191895490" at="34,0,35,0" concept="5" trace="withParam#(Ljava/lang/String;Ljava/lang/Object;)Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession/Config;" />
<node id="3363149567557374122" at="36,0,37,0" concept="5" trace="start#(Ljetbrains/mps/logic/reactor/evaluation/SessionSolver;)Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession;" />
<node id="6317379717827086566" at="39,0,40,0" concept="5" trace="sessionSolver#()Ljetbrains/mps/logic/reactor/evaluation/SessionSolver;" />
<node id="6317379717812938932" at="41,0,42,0" concept="5" trace="constraintSymbols#()Ljava/lang/Iterable;" />
<node id="6317379717812938847" at="43,0,44,0" concept="5" trace="constraintOccurrences#()Ljava/lang/Iterable;" />
<node id="6168558935192236908" at="45,0,46,0" concept="5" trace="constraintOccurrences#(Ljetbrains/mps/logic/reactor/program/ConstraintSymbol;)Ljava/lang/Iterable;" />
<node id="6317379717813102752" at="48,29,49,66" concept="12" />
<node id="6317379717813102233" at="50,5,51,25" concept="1" />
<node id="95655808403437439" at="55,32,56,56" concept="12" />
<node id="95655808403437449" at="57,5,58,22" concept="1" />
<node id="6317379717813098484" at="63,0,64,0" concept="5" trace="current#()Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession;" />
<node id="6168558935191972549" at="65,0,66,0" concept="5" trace="createConfig#(Ljetbrains/mps/logic/reactor/program/Program;)Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession/Config;" />
<node id="6317379717813099242" at="69,0,70,0" concept="9" trace="ourBackend" />
<node id="6317379717813099888" at="14,45,17,5" concept="4" />
<node id="6168558935191972037" at="21,70,24,5" concept="4" />
<node id="6317379717813102551" at="47,71,50,5" concept="4" />
<node id="95655808403437437" at="54,73,57,5" concept="4" />
<node id="6317379717813096791" at="14,0,20,0" concept="10" trace="current#()Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession;" />
<node id="139299000606655469" at="21,0,27,0" concept="10" trace="newSession#(Ljetbrains/mps/logic/reactor/program/Program;)Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession/Config;" />
<node id="6317379717813098786" at="47,0,53,0" concept="10" trace="setBackend#(Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession/Backend;)V" />
<node id="95655808403436479" at="54,0,60,0" concept="10" trace="clearBackend#(Ljetbrains/mps/logic/reactor/evaluation/EvaluationSession/Backend;)V" />
<scope id="6317379717813099889" at="15,29,16,52" />
<scope id="6168558935191972038" at="22,29,23,52" />
<scope id="6317379717813101174" at="30,0,31,0">
<var name="predicateSymbols" id="6317379717813101556" />
</scope>
<scope id="6317379717813105701" at="32,0,33,0">
<var name="computingTracer" id="6168558935191960377" />
</scope>
<scope id="6168558935191895490" at="34,0,35,0">
<var name="key" id="6168558935191897683" />
<var name="param" id="6168558935191897958" />
</scope>
<scope id="3363149567557374122" at="36,0,37,0">
<var name="sessionSolver" id="3363149567557374361" />
</scope>
<scope id="6317379717827086566" at="39,0,40,0" />
<scope id="6317379717812938932" at="41,0,42,0" />
<scope id="6317379717812938847" at="43,0,44,0" />
<scope id="6168558935192236908" at="45,0,46,0">
<var name="symbol" id="6168558935192236909" />
</scope>
<scope id="6317379717813102553" at="48,29,49,66" />
<scope id="95655808403437438" at="55,32,56,56" />
<scope id="6317379717813098484" at="63,0,64,0" />
<scope id="6168558935191972549" at="65,0,66,0">
<var name="program" id="8018003882644448705" />
</scope>
<scope id="6317379717813096795" at="14,45,18,32" />
<scope id="139299000606655473" at="21,70,25,44" />
<scope id="6317379717813098790" at="47,71,51,25" />
<scope id="95655808403436100" at="54,73,58,22" />
<scope id="6317379717813096791" at="14,0,20,0" />
<scope id="139299000606655469" at="21,0,27,0">
<var name="program" id="8018003882644425854" />
</scope>
<scope id="6317379717813098786" at="47,0,53,0">
<var name="backend" id="6317379717813098959" />
</scope>
<scope id="95655808403436479" at="54,0,60,0">
<var name="backend" id="95655808403437286" />
</scope>
<unit id="6317379717813098039" at="61,0,68,0" name="jetbrains.mps.logic.reactor.evaluation.EvaluationSession$Backend" />
<unit id="6317379717813097023" at="28,0,38,0" name="jetbrains.mps.logic.reactor.evaluation.EvaluationSession$Config" />
<unit id="6317379717812926797" at="12,0,72,0" name="jetbrains.mps.logic.reactor.evaluation.EvaluationSession" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/6317379717821145892">
<file name="ConstraintOccurrence.java">
<node id="6317379717821145919" at="10,0,11,0" concept="5" trace="constraint#()Ljetbrains/mps/logic/reactor/program/Constraint;" />
<node id="6317379717821146080" at="12,0,13,0" concept="5" trace="arguments#()Ljava/util/List;" />
<scope id="6317379717821145919" at="10,0,11,0" />
<scope id="6317379717821146080" at="12,0,13,0" />
<unit id="6317379717821145892" at="8,0,15,0" name="jetbrains.mps.logic.reactor.evaluation.ConstraintOccurrence" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/6976745534798407019">
<file name="MatchRule.java">
<node id="6976745534798407051" at="9,0,10,0" concept="5" trace="rule#()Ljetbrains/mps/logic/reactor/program/Rule;" />
<node id="6976745534798407110" at="11,0,12,0" concept="5" trace="matchHeadKept#()Ljava/lang/Iterable;" />
<node id="6976745534798407558" at="13,0,14,0" concept="5" trace="matchHeadReplaced#()Ljava/lang/Iterable;" />
<scope id="6976745534798407051" at="9,0,10,0" />
<scope id="6976745534798407110" at="11,0,12,0" />
<scope id="6976745534798407558" at="13,0,14,0" />
<unit id="6976745534798407019" at="7,0,16,0" name="jetbrains.mps.logic.reactor.evaluation.MatchRule" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/7728771328120100825">
<file name="Solver.java">
<unit id="7728771328120100825" at="7,0,9,0" name="jetbrains.mps.logic.reactor.evaluation.Solver" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/7785665572546273004">
<file name="Instructible.java">
<node id="3363149567549910458" at="8,0,9,0" concept="5" trace="tell#(Ljetbrains/mps/logic/reactor/evaluation/PredicateInvocation;)V" />
<scope id="3363149567549910458" at="8,0,9,0">
<var name="invocation" id="3363149567549910612" />
</scope>
<unit id="7785665572546273004" at="6,0,11,0" name="jetbrains.mps.logic.reactor.evaluation.Instructible" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/7785665572546275793">
<file name="Queryable.java">
<node id="3363149567549910804" at="8,0,9,0" concept="5" trace="ask#(Ljetbrains/mps/logic/reactor/evaluation/PredicateInvocation;)Z" />
<scope id="3363149567549910804" at="8,0,9,0">
<var name="invocation" id="3363149567549911069" />
</scope>
<unit id="7785665572546275793" at="6,0,11,0" name="jetbrains.mps.logic.reactor.evaluation.Queryable" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/7785665572546282176">
<file name="SessionSolver.java">
<node id="2831834914716488778" at="18,57,19,38" concept="1" />
<node id="7014572411587984891" at="22,90,23,29" concept="1" />
<node id="7014572411587985397" at="23,29,24,27" concept="1" />
<node id="3363149567550414683" at="28,54,29,77" concept="6" />
<node id="3363149567550414116" at="29,77,30,35" concept="1" />
<node id="3363149567550416932" at="30,35,31,18" concept="7" />
<node id="7728771328121471038" at="37,71,38,44" concept="6" />
<node id="7728771328121471045" at="38,44,39,66" concept="6" />
<node id="7728771328121471055" at="39,66,40,103" concept="6" />
<node id="7728771328126535745" at="40,103,41,0" concept="8" />
<node id="5217246026231915802" at="41,0,42,51" concept="7" />
<node id="3363149567550424405" at="46,52,47,28" concept="1" />
<node id="3363149567550423403" at="47,28,48,62" concept="1" />
<node id="7728771328121395765" at="54,51,55,53" concept="6" />
<node id="7728771328121399126" at="55,53,56,75" concept="6" />
<node id="7728771328121463787" at="56,75,57,103" concept="6" />
<node id="7728771328121511891" at="57,103,58,0" concept="8" />
<node id="7728771328121465285" at="58,0,59,28" concept="1" />
<node id="7835819612253026878" at="62,0,63,0" concept="5" trace="queueIfBusy#(Ljava/lang/Runnable;)Z" />
<node id="3724831866538106796" at="64,0,65,0" concept="5" trace="fail#(Ljava/lang/String;)V" />
<node id="6317379717822079128" at="67,69,68,41" concept="6" />
<node id="5217246026233178759" at="69,57,70,25" concept="7" />
<node id="5217246026233191067" at="72,5,73,16" concept="7" />
<node id="2831834914719725967" at="76,0,77,0" concept="5" trace="solverClass#(Ljetbrains/mps/logic/reactor/program/PredicateSymbol;)Ljava/lang/Class;" />
<node id="2831834914716457503" at="78,0,79,0" concept="5" trace="registerSymbol#(Ljetbrains/mps/logic/reactor/program/PredicateSymbol;Ljetbrains/mps/logic/reactor/evaluation/EvaluationTrace;)V" />
<node id="7785665572546333582" at="80,76,81,36" concept="1" />
<node id="2831834914716388776" at="84,47,85,44" concept="7" />
<node id="95655808403401608" at="89,53,90,37" concept="1" />
<node id="7785665572546325981" at="95,50,96,72" concept="12" />
<node id="7785665572546325992" at="97,5,98,40" concept="7" />
<node id="7728771328121437336" at="103,58,104,33" concept="1" />
<node id="7728771328121438910" at="104,33,105,23" concept="1" />
<node id="7728771328121439355" at="108,34,109,23" concept="7" />
<node id="7728771328121440180" at="112,32,113,18" concept="7" />
<node id="7728771328121437332" at="116,0,117,0" concept="2" trace="predicate" />
<node id="7728771328121438905" at="117,0,118,0" concept="2" trace="args" />
<node id="7785665572546302065" at="120,0,121,0" concept="2" trace="solvers" />
<node id="7014572411587970459" at="121,0,122,0" concept="2" trace="tracer" />
<node id="2831834914716484929" at="18,0,21,0" concept="5" trace="init#(null)V" />
<node id="5217246026233173468" at="68,41,71,7" concept="4" />
<node id="7785665572546292859" at="80,0,83,0" concept="5" trace="registerSolver#(Ljetbrains/mps/logic/reactor/program/PredicateSymbol;Ljetbrains/mps/logic/reactor/evaluation/Solver;)V" />
<node id="7785665572546284968" at="84,0,87,0" concept="5" trace="handler#(Ljetbrains/mps/logic/reactor/program/Symbol;)Ljetbrains/mps/logic/reactor/evaluation/Instructible;" />
<node id="6168558935193484641" at="88,69,91,5" concept="3" />
<node id="7785665572546325979" at="94,58,97,5" concept="4" />
<node id="7728771328121436383" at="108,0,111,0" concept="5" trace="predicate#()Ljetbrains/mps/logic/reactor/program/Predicate;" />
<node id="7728771328121436390" at="112,0,115,0" concept="5" trace="arguments#()Ljava/util/List;" />
<node id="2831834914717569542" at="22,0,26,0" concept="5" trace="init#(Ljetbrains/mps/logic/reactor/evaluation/EvaluationTrace;null)V" />
<node id="7728771328121436895" at="103,0,107,0" concept="0" trace="Invocation#(Ljetbrains/mps/logic/reactor/program/Predicate;Ljava/util/List;)V" />
<node id="3363149567550418752" at="45,0,50,0" concept="5" trace="tell#(Ljetbrains/mps/logic/reactor/evaluation/PredicateInvocation;)V" />
<node id="95655808403395937" at="88,0,93,0" concept="5" trace="registerSymbols#(null)V" />
<node id="3363149567550406684" at="27,0,33,0" concept="5" trace="ask#(Ljetbrains/mps/logic/reactor/evaluation/PredicateInvocation;)Z" />
<node id="5217246026233172453" at="66,52,72,5" concept="3" />
<node id="7785665572546285620" at="94,0,100,0" concept="5" trace="solver#(Ljetbrains/mps/logic/reactor/program/PredicateSymbol;)Ljetbrains/mps/logic/reactor/evaluation/Solver;" />
<node id="5217246026231897797" at="37,0,44,0" concept="5" trace="ask#(Ljetbrains/mps/logic/reactor/program/PredicateSymbol;null)Z" />
<node id="5217246026231929908" at="54,0,61,0" concept="5" trace="tell#(Ljetbrains/mps/logic/reactor/program/Symbol;null)V" />
<node id="5217246026233157724" at="66,0,75,0" concept="5" trace="lookupQueryable#(Ljava/lang/Class;)Ljetbrains/mps/logic/reactor/evaluation/Queryable;" />
<scope id="2831834914716484932" at="18,57,19,38" />
<scope id="7835819612253026878" at="62,0,63,0">
<var name="runnable" id="7835819612253037436" />
</scope>
<scope id="3724831866538106796" at="64,0,65,0">
<var name="message" id="3724831866538109748" />
</scope>
<scope id="5217246026233173469" at="69,57,70,25" />
<scope id="2831834914719725967" at="76,0,77,0">
<var name="predicateSymbol" id="2831834914719727576" />
</scope>
<scope id="2831834914716457503" at="78,0,79,0">
<var name="computingTracer" id="2831834914717563394" />
<var name="predicateSymbol" id="2831834914716459800" />
</scope>
<scope id="7785665572546292862" at="80,76,81,36" />
<scope id="7785665572546284972" at="84,47,85,44" />
<scope id="6168558935193484643" at="89,53,90,37" />
<scope id="7785665572546325980" at="95,50,96,72" />
<scope id="7728771328121436387" at="108,34,109,23" />
<scope id="7728771328121436395" at="112,32,113,18" />
<scope id="2831834914717569548" at="22,90,24,27" />
<scope id="3363149567550418758" at="46,52,48,62" />
<scope id="7728771328121436899" at="103,58,105,23" />
<scope id="2831834914716484929" at="18,0,21,0">
<var name="predicateSymbols" id="2831834914717547255" />
</scope>
<scope id="3363149567550406690" at="28,54,31,18">
<var name="result" id="3363149567550414684" />
</scope>
<scope id="7785665572546292859" at="80,0,83,0">
<var name="constraint" id="7785665572546292863" />
<var name="solver" id="7785665572546292865" />
</scope>
<scope id="7785665572546284968" at="84,0,87,0">
<var name="symbol" id="7785665572546285221" />
</scope>
<scope id="6168558935193484641" at="88,69,91,5">
<var name="symbol" id="6168558935193484645" />
</scope>
<scope id="95655808403395941" at="88,69,91,5" />
<scope id="7728771328121436383" at="108,0,111,0" />
<scope id="7728771328121436390" at="112,0,115,0" />
<scope id="2831834914717569542" at="22,0,26,0">
<var name="evaluationTrace" id="2831834914717569543" />
<var name="predicateSymbols" id="2831834914717569545" />
</scope>
<scope id="5217246026233172455" at="67,69,71,7">
<var name="queryable" id="6317379717822079129" />
</scope>
<scope id="7785665572546285625" at="94,58,98,40" />
<scope id="7728771328121436895" at="103,0,107,0">
<var name="args" id="7728771328121438371" />
<var name="predicate" id="7728771328121437096" />
</scope>
<scope id="5217246026231897801" at="37,71,42,51">
<var name="invocation" id="7728771328121471056" />
<var name="predicate" id="7728771328121471046" />
<var name="solver" id="7728771328121471039" />
</scope>
<scope id="3363149567550418752" at="45,0,50,0">
<var name="invocation" id="3363149567550418756" />
</scope>
<scope id="5217246026231929912" at="54,51,59,28">
<var name="invocation" id="7728771328121463788" />
<var name="predicate" id="7728771328121399127" />
<var name="solver" id="7728771328121395766" />
</scope>
<scope id="95655808403395937" at="88,0,93,0">
<var name="predicateSymbols" id="2831834914717550247" />
</scope>
<scope id="3363149567550406684" at="27,0,33,0">
<var name="invocation" id="3363149567550406685" />
</scope>
<scope id="5217246026233172453" at="66,52,72,5">
<var name="e" id="5217246026233172457" />
</scope>
<scope id="7785665572546285620" at="94,0,100,0">
<var name="predicateSymbol" id="7785665572546285621" />
</scope>
<scope id="5217246026231897797" at="37,0,44,0">
<var name="args" id="5217246026231906313" />
<var name="predicateSymbol" id="5217246026231904980" />
</scope>
<scope id="5217246026231929908" at="54,0,61,0">
<var name="args" id="5217246026231935273" />
<var name="symbol" id="5217246026231933720" />
</scope>
<scope id="5217246026233157731" at="66,52,73,16" />
<scope id="5217246026233157724" at="66,0,75,0">
<var name="clazz" id="5217246026233157725" />
</scope>
<unit id="7728771328121434191" at="101,0,119,0" name="jetbrains.mps.logic.reactor.evaluation.SessionSolver$Invocation" />
<unit id="7785665572546282176" at="16,0,123,0" name="jetbrains.mps.logic.reactor.evaluation.SessionSolver" />
</file>
</root>
<root nodeRef="r:2a79c8aa-e372-4c00-8d71-5d7f3db517e4(jetbrains.mps.logic.reactor.evaluation)/8638394859472384258">
<file name="EvaluationFailureException.java">
<node id="8638394859472397678" at="8,53,9,19" concept="11" />
<node id="8638394859472397846" at="12,54,13,17" concept="11" />
<node id="8638394859472397634" at="8,0,11,0" concept="0" trace="EvaluationFailureException#(Ljava/lang/String;)V" />
<node id="8638394859472397786" at="12,0,15,0" concept="0" trace="EvaluationFailureException#(Ljava/lang/Throwable;)V" />
<scope id="8638394859472397638" at="8,53,9,19" />
<scope id="8638394859472397790" at="12,54,13,17" />
<scope id="8638394859472397634" at="8,0,11,0">
<var name="message" id="8638394859472397646" />
</scope>
<scope id="8638394859472397786" at="12,0,15,0">
<var name="cause" id="8638394859472397820" />
</scope>
<unit id="8638394859472384258" at="6,0,17,0" name="jetbrains.mps.logic.reactor.evaluation.EvaluationFailureException" />
</file>
</root>
</debug-info>

View File

@ -1,42 +1,58 @@
package jetbrains.mps.logic.reactor.logical;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.logical;
/**
* A logical variable that can be joined with another variable to produce a union.
*
* @param <T> the value type
*
* @author Fedor Isakov
*/
public interface JoinableLogical<T> extends Logical<T> {
/**
* Covariant override.
*/
JoinableLogical<T> findRoot();
/**
* Covariant override.
*/
JoinableLogical<T> findRoot();
/**
* Unions two equivalence classes of logicals.
* Both the receiver and the {@code other} parameter are expected to be representatives.
* The one with the highest rank becomes the representative for the new class.
*/
void union(JoinableLogical<T> other, JoinableLogical.ValueReconciler<T> reconciler);
/**
* Unions two equivalence classes of logicals.
* Both the receiver and the {@code other} parameter are expected to be representatives.
* The one with the highest rank becomes the representative for the new class.
*/
void union(JoinableLogical<T> other, JoinableLogical.ValueReconciler<T> reconciler);
/**
* Calls {@link JoinableLogical#union(JoinableLogical <T>, JoinableLogical.ValueReconciler<T>) } with the default value reconciler.
* The default reconciler throws {@link java.lang.IllegalArgumentException } if the two values are not equal.
*/
void union(JoinableLogical<T> other);
/**
* Calls {@link JoinableLogical#union(JoinableLogical <T>, JoinableLogical.ValueReconciler<T>) } with the default value reconciler.
* The default reconciler throws {@link java.lang.IllegalArgumentException } if the two values are not equal.
*/
void union(JoinableLogical<T> other);
/**
* Should only be called on a representative.
*/
void setValue(T newValue);
/**
* Should only be called on a representative.
*/
void setValue(T newValue);
interface ValueReconciler<T> {
interface ValueReconciler<T> {
void reconcile(T valueA, T valueB);
void reconcile(T valueA, T valueB);
}
}
}

View File

@ -1,40 +1,56 @@
package jetbrains.mps.logic.reactor.logical;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.logical;
/**
* A run-time representation of a logical variable.
*
* @param <T> the value type
*
* @author Fedor Isakov
*/
public interface Logical<T> {
String name();
String name();
/**
* Returns the representative logical instance.
*
* TODO: rename to 'find()'
*/
Logical<T> findRoot();
/**
* Returns the representative logical instance.
* <p>
* TODO: rename to 'find()'
*/
Logical<T> findRoot();
/**
* Returns the value associated with this logical instance.
* Can be null.
* Only the logical instance that is a representative can have value that is not null.
*
* FIXME: must return the representative's value
*/
T value();
/**
* Returns the value associated with this logical instance.
* Can be null.
* Only the logical instance that is a representative can have value that is not null.
* <p>
* FIXME: must return the representative's value
*/
T value();
/**
* True iff the representative has a non-null value.
*/
boolean isBound();
/**
* True iff the representative has a non-null value.
*/
boolean isBound();
boolean isWildcard();
boolean isWildcard();
MetaLogical<T> metaLogical();
MetaLogical<T> metaLogical();
}

View File

@ -1,13 +1,30 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.logical;
/*Generated by MPS */
/**
* Substitution of logicals for meta-logicals.
*
* @author Fedor Isakov
*/
public interface LogicalContext {
<V> Logical<V> variable(MetaLogical<V> metaLogical);
<V> Logical<V> variable(MetaLogical<V> metaLogical);
}

View File

@ -1,13 +1,29 @@
package jetbrains.mps.logic.reactor.logical;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.logical;
/**
* An abstract wrapper for a {@link Logical}.
*
* @author Fedor Isakov
*/
public interface LogicalOwner {
Logical<?> logical();
Logical<?> logical();
}

View File

@ -1,46 +1,62 @@
package jetbrains.mps.logic.reactor.logical;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.logical;
/**
* A declaration of a logical variable.
* A declaration of a logical variable.
*
* @param <T> the value type
*
* @author Fedor Isakov
*/
public class MetaLogical<T> {
private static final String WILDCARD = "_";
private static final String WILDCARD = "_";
private String name;
private Class<T> type;
private boolean wildcard = false;
public MetaLogical(String name, Class<T> type) {
this.name = name;
this.type = type;
}
public MetaLogical(String name, Class<T> type) {
this.name = name;
this.type = type;
}
public MetaLogical(Class<T> type) {
this.name = MetaLogical.WILDCARD + System.identityHashCode(this);
this.type = type;
this.wildcard = true;
}
public MetaLogical(Class<T> type) {
this.name = MetaLogical.WILDCARD + System.identityHashCode(this);
this.type = type;
this.wildcard = true;
}
public String name() {
return name;
}
public String name() {
return name;
}
public boolean isWildcard() {
return wildcard;
}
public boolean isWildcard() {
return wildcard;
}
public Class<T> type() {
return type;
}
public Class<T> type() {
return type;
}
@Override
public String toString() {
return name;
}
private String name;
private Class<T> type;
private boolean wildcard = false;
@Override
public String toString() {
return name;
}
}

View File

@ -1,41 +1,59 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.logical;
/*Generated by MPS */
import java.util.List;
import java.util.ArrayList;
import java.util.List;
/**
* A declaration of a logical variable with index.
* @param <T>
* A declaration of a logical variable with index.
*
* @param <T> the value type
*
* @author Fedor Isakov
*/
public class MultiMetaLogical<T> extends MetaLogical<T> {
public MultiMetaLogical(String name, Class<T> type, int cardinality) {
super(name, type);
this.cardinality = cardinality;
init();
}
private int cardinality;
private List<MetaLogical<T>> metaLogicals = new ArrayList<MetaLogical<T>>();
public int cardinality() {
return cardinality;
}
public MetaLogical<T> logicalAt(int idx) {
return metaLogicals.get(idx);
}
public MetaLogical[] toArray() {
MetaLogical[] array = new MetaLogical[cardinality];
return metaLogicals.toArray(array);
}
private void init() {
for (int i = 0; i < cardinality; i++) {
metaLogicals.add(new MetaLogical<T>(name() + "_" + (i + 1), type()));
public MultiMetaLogical(String name, Class<T> type, int cardinality) {
super(name, type);
this.cardinality = cardinality;
init();
}
}
private int cardinality;
private List<MetaLogical<T>> metaLogicals = new ArrayList<MetaLogical<T>>();
public int cardinality() {
return cardinality;
}
public MetaLogical<T> logicalAt(int idx) {
return metaLogicals.get(idx);
}
public MetaLogical[] toArray() {
MetaLogical[] array = new MetaLogical[cardinality];
return metaLogicals.toArray(array);
}
private void init() {
for (int i = 0; i < cardinality; i++) {
metaLogicals.add(new MetaLogical<T>(name() + "_" + (i + 1), type()));
}
}
}

View File

@ -1,173 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<debug-info version="2">
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123140:jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123155:jetbrains.mps.baseLanguage.structure.ExpressionStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068390468200:jetbrains.mps.baseLanguage.structure.FieldDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1144231330558:jetbrains.mps.baseLanguage.structure.ForStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123165:jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068581242864:jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068581242878:jetbrains.mps.baseLanguage.structure.ReturnStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070462154015:jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070475587102:jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" />
<root nodeRef="r:7365f7fe-12e6-4229-8901-f6dc6d5df03f(jetbrains.mps.logic.reactor.logical)/1564179198503508264">
<file name="Logical.java">
<node id="7045828502339522708" at="8,0,9,0" concept="4" trace="name#()Ljava/lang/String;" />
<node id="238586457663160034" at="15,0,16,0" concept="4" trace="findRoot#()Ljetbrains/mps/logic/reactor/logical/Logical;" />
<node id="1564179198503509166" at="24,0,25,0" concept="4" trace="value#()null" />
<node id="1564179198503509045" at="29,0,30,0" concept="4" trace="isBound#()Z" />
<node id="3058061960962299083" at="31,0,32,0" concept="4" trace="isWildcard#()Z" />
<node id="8897567155601592702" at="33,0,34,0" concept="4" trace="metaLogical#()Ljetbrains/mps/logic/reactor/logical/MetaLogical;" />
<scope id="7045828502339522708" at="8,0,9,0" />
<scope id="238586457663160034" at="15,0,16,0" />
<scope id="1564179198503509166" at="24,0,25,0" />
<scope id="1564179198503509045" at="29,0,30,0" />
<scope id="3058061960962299083" at="31,0,32,0" />
<scope id="8897567155601592702" at="33,0,34,0" />
<unit id="1564179198503508264" at="6,0,36,0" name="jetbrains.mps.logic.reactor.logical.Logical" />
</file>
</root>
<root nodeRef="r:7365f7fe-12e6-4229-8901-f6dc6d5df03f(jetbrains.mps.logic.reactor.logical)/4725685633777355365">
<file name="LogicalOwner.java">
<node id="4725685633777390939" at="8,0,9,0" concept="4" trace="logical#()Ljetbrains/mps/logic/reactor/logical/Logical;" />
<scope id="4725685633777390939" at="8,0,9,0" />
<unit id="4725685633777355365" at="6,0,11,0" name="jetbrains.mps.logic.reactor.logical.LogicalOwner" />
</file>
</root>
<root nodeRef="r:7365f7fe-12e6-4229-8901-f6dc6d5df03f(jetbrains.mps.logic.reactor.logical)/7835819612255545383">
<file name="SolverLogical.java">
<node id="4650394911992714457" at="11,0,12,0" concept="4" trace="findRoot#()Ljetbrains/mps/logic/reactor/logical/SolverLogical;" />
<node id="2322954797151415913" at="18,0,19,0" concept="4" trace="union#(Ljetbrains/mps/logic/reactor/logical/SolverLogical;Ljetbrains/mps/logic/reactor/logical/SolverLogical/ValueReconciler;)V" />
<node id="2322954797151538884" at="24,0,25,0" concept="4" trace="union#(Ljetbrains/mps/logic/reactor/logical/SolverLogical;)V" />
<node id="7835819612255551865" at="29,0,30,0" concept="4" trace="setValue#(null)V" />
<node id="2322954797151528577" at="33,0,34,0" concept="4" trace="reconcile#(nullnull)V" />
<scope id="4650394911992714457" at="11,0,12,0" />
<scope id="2322954797151415913" at="18,0,19,0">
<var name="other" id="2322954797151420306" />
<var name="reconciler" id="2322954797151548178" />
</scope>
<scope id="2322954797151538884" at="24,0,25,0">
<var name="other" id="2322954797151538888" />
</scope>
<scope id="7835819612255551865" at="29,0,30,0">
<var name="newValue" id="7835819612255552078" />
</scope>
<scope id="2322954797151528577" at="33,0,34,0">
<var name="valueA" id="2322954797151533039" />
<var name="valueB" id="2322954797151537544" />
</scope>
<unit id="2322954797151517794" at="31,0,36,0" name="jetbrains.mps.logic.reactor.logical.SolverLogical$ValueReconciler" />
<unit id="7835819612255545383" at="6,0,38,0" name="jetbrains.mps.logic.reactor.logical.SolverLogical" />
</file>
</root>
<root nodeRef="r:7365f7fe-12e6-4229-8901-f6dc6d5df03f(jetbrains.mps.logic.reactor.logical)/7835819612256812298">
<file name="LogicalUnification.java">
<node id="7835819612256815740" at="9,0,10,0" concept="4" trace="asRoot#(null)null" />
<node id="7835819612256819308" at="11,0,12,0" concept="4" trace="logical#(null)Ljetbrains/mps/logic/reactor/logical/SolverLogical;" />
<node id="7835819612261255414" at="13,0,14,0" concept="4" trace="isLogical#(Ljetbrains/mps/unification/Term;)Z" />
<scope id="7835819612256815740" at="9,0,10,0">
<var name="term" id="7835819612256818579" />
</scope>
<scope id="7835819612256819308" at="11,0,12,0">
<var name="var" id="7835819612256826805" />
</scope>
<scope id="7835819612261255414" at="13,0,14,0">
<var name="term" id="7835819612261256408" />
</scope>
<unit id="7835819612256812298" at="7,0,16,0" name="jetbrains.mps.logic.reactor.logical.LogicalUnification" />
</file>
</root>
<root nodeRef="r:7365f7fe-12e6-4229-8901-f6dc6d5df03f(jetbrains.mps.logic.reactor.logical)/8897567155595965539">
<file name="MetaLogical.java">
<node id="8499880265522559267" at="8,0,9,0" concept="7" trace="WILDCARD" />
<node id="8499880265522559281" at="10,50,11,21" concept="1" />
<node id="8499880265522559287" at="11,21,12,21" concept="1" />
<node id="8499880265522559301" at="15,37,16,69" concept="1" />
<node id="8499880265522559309" at="16,69,17,21" concept="1" />
<node id="8499880265522559315" at="17,21,18,25" concept="1" />
<node id="8499880265524914186" at="21,24,22,16" concept="6" />
<node id="8499880265524914478" at="25,31,26,20" concept="6" />
<node id="8499880265524914776" at="29,26,30,16" concept="6" />
<node id="8027627297624731289" at="34,28,35,16" concept="6" />
<node id="8499880265522559381" at="38,0,39,0" concept="2" trace="name" />
<node id="8499880265522559384" at="39,0,40,0" concept="2" trace="type" />
<node id="8499880265522559388" at="40,0,41,0" concept="2" trace="wildcard" />
<node id="8897567155595965722" at="21,0,24,0" concept="4" trace="name#()Ljava/lang/String;" />
<node id="8897567155595965985" at="25,0,28,0" concept="4" trace="isWildcard#()Z" />
<node id="8897567155598409095" at="29,0,32,0" concept="4" trace="type#()Ljava/lang/Class;" />
<node id="8499880265522559272" at="10,0,14,0" concept="0" trace="MetaLogical#(Ljava/lang/String;Ljava/lang/Class;)V" />
<node id="8027627297624729689" at="33,0,37,0" concept="4" trace="toString#()Ljava/lang/String;" />
<node id="8499880265522559294" at="15,0,20,0" concept="0" trace="MetaLogical#(Ljava/lang/Class;)V" />
<scope id="8897567155595965725" at="21,24,22,16" />
<scope id="8897567155595965986" at="25,31,26,20" />
<scope id="8897567155598409099" at="29,26,30,16" />
<scope id="8027627297624729693" at="34,28,35,16" />
<scope id="8499880265522559280" at="10,50,12,21" />
<scope id="8499880265522559300" at="15,37,18,25" />
<scope id="8897567155595965722" at="21,0,24,0" />
<scope id="8897567155595965985" at="25,0,28,0" />
<scope id="8897567155598409095" at="29,0,32,0" />
<scope id="8499880265522559272" at="10,0,14,0">
<var name="name" id="8499880265522559273" />
<var name="type" id="8499880265522559275" />
</scope>
<scope id="8027627297624729689" at="33,0,37,0" />
<scope id="8499880265522559294" at="15,0,20,0">
<var name="type" id="8499880265522559295" />
</scope>
<unit id="8897567155595965539" at="6,0,43,0" name="jetbrains.mps.logic.reactor.logical.MetaLogical" />
</file>
</root>
<root nodeRef="r:7365f7fe-12e6-4229-8901-f6dc6d5df03f(jetbrains.mps.logic.reactor.logical)/8897567155601467909">
<file name="MultiMetaLogical.java">
<node id="8499880265522563072" at="10,72,11,22" concept="8" />
<node id="8499880265522563075" at="11,22,12,35" concept="1" />
<node id="8499880265522563081" at="12,35,13,11" concept="1" />
<node id="8499880265524939109" at="16,28,17,23" concept="6" />
<node id="8499880265522563105" at="20,44,21,33" concept="6" />
<node id="8499880265522563116" at="24,34,25,55" concept="5" />
<node id="8499880265522563125" at="25,55,26,39" concept="6" />
<node id="8499880265522563140" at="30,43,31,75" concept="1" />
<node id="8499880265522563167" at="35,0,36,0" concept="2" trace="cardinality" />
<node id="8499880265522563171" at="36,0,37,0" concept="2" trace="metaLogicals" />
<node id="8897567155598413823" at="16,0,19,0" concept="4" trace="cardinality#()I" />
<node id="8897567155601465253" at="20,0,23,0" concept="4" trace="logicalAt#(I)Ljetbrains/mps/logic/reactor/logical/MetaLogical;" />
<node id="8499880265522563133" at="29,23,32,5" concept="3" />
<node id="8897567155608760084" at="24,0,28,0" concept="4" trace="toArray#()[Ljetbrains/mps/logic/reactor/logical/MetaLogical;" />
<node id="8499880265522563068" at="10,0,15,0" concept="0" trace="MultiMetaLogical#(Ljava/lang/String;Ljava/lang/Class;I)V" />
<node id="8499880265522563131" at="29,0,34,0" concept="4" trace="init#()V" />
<scope id="8897567155598413824" at="16,28,17,23" />
<scope id="8897567155601465256" at="20,44,21,33" />
<scope id="8499880265522563139" at="30,43,31,75" />
<scope id="8897567155608760087" at="24,34,26,39">
<var name="array" id="8499880265522563117" />
</scope>
<scope id="8499880265522563071" at="10,72,13,11" />
<scope id="8897567155598413823" at="16,0,19,0" />
<scope id="8897567155601465253" at="20,0,23,0">
<var name="idx" id="8897567155601468783" />
</scope>
<scope id="8499880265522563132" at="29,23,32,5" />
<scope id="8499880265522563133" at="29,23,32,5">
<var name="i" id="8499880265522563136" />
</scope>
<scope id="8897567155608760084" at="24,0,28,0" />
<scope id="8499880265522563068" at="10,0,15,0">
<var name="cardinality" id="8499880265522563088" />
<var name="name" id="8499880265522563083" />
<var name="type" id="8499880265522563085" />
</scope>
<scope id="8499880265522563131" at="29,0,34,0" />
<unit id="8897567155601467909" at="8,0,38,0" name="jetbrains.mps.logic.reactor.logical.MultiMetaLogical" />
</file>
</root>
<root nodeRef="r:7365f7fe-12e6-4229-8901-f6dc6d5df03f(jetbrains.mps.logic.reactor.logical)/8907901911298493091">
<file name="LogicalContext.java">
<node id="8907901911298493118" at="8,0,9,0" concept="4" trace="variable#(Ljetbrains/mps/logic/reactor/logical/MetaLogical;)Ljetbrains/mps/logic/reactor/logical/Logical;" />
<scope id="8907901911298493118" at="8,0,9,0">
<var name="metaLogical" id="8907901911298493173" />
</scope>
<unit id="8907901911298493091" at="6,0,11,0" name="jetbrains.mps.logic.reactor.logical.LogicalContext" />
</file>
</root>
</debug-info>

View File

@ -1,16 +1,33 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.program;
/*Generated by MPS */
import java.util.List;
/**
* An abstract conjunct.
* An abstract conjunct.
*
* @author Fedor Isakov
*/
public interface AndItem {
Symbol symbol();
Symbol symbol();
List<?> arguments();
List<?> arguments();
}

View File

@ -1,25 +1,41 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.program;
/*Generated by MPS */
import java.util.List;
import java.util.Collection;
import jetbrains.mps.logic.reactor.logical.LogicalContext;
import java.util.List;
/**
* A constraint provided by a handler.
*
* @author Fedor Isakov
*/
public interface Constraint extends AndItem {
ConstraintSymbol symbol();
ConstraintSymbol symbol();
List<Class<?>> argumentTypes();
List<Class<?>> argumentTypes();
/**
* Returns the collection of predicates that need to be applied after a successful match of this collection by a
* rule's head.
* This method only returns meaningful results for constraints that serve as patterns in a rule's head.
*/
Collection<? extends Predicate> patternPredicates(Collection<?> occurrenceArgs);
/**
* Returns the collection of predicates that need to be applied after a successful match of this collection by a
* rule's head.
* This method only returns meaningful results for constraints that serve as patterns in a rule's head.
*/
Collection<? extends Predicate> patternPredicates(Collection<?> occurrenceArgs);
}

View File

@ -1,24 +1,40 @@
package jetbrains.mps.logic.reactor.program;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.program;
/**
* TODO: move to the constraint model
* A constraint symbol.
*
* @author Fedor Isakov
*/
public class ConstraintSymbol extends Symbol {
public static ConstraintSymbol symbol(String id, int arity) {
return new ConstraintSymbol(id, arity);
}
public ConstraintSymbol(String id, int arity) {
super(id, arity);
}
public ConstraintSymbol(String id, int arity) {
super(id, arity);
}
public static ConstraintSymbol symbol(String id, int arity) {
return new ConstraintSymbol(id, arity);
}
@Override
public String toString() {
return id() + "/" + arity();
}
@Override
public String toString() {
return id() + "/" + arity();
}
}

View File

@ -1,10 +1,28 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.program;
/**
* A handler is a container of rules.
* A handler is a container of rules.
* <p>
* If the {@code primarySymbols} is a non-empty collection, only constraints with these symbols are processed
* by this handler.
*
* If the {@code primarySymbols} is a non-empty collection, only constraints with these symbols are processed
* by this handler.
* @author Fedor Isakov
*/
public abstract class Handler {

View File

@ -1,16 +1,31 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.program;
/*Generated by MPS */
public class InvalidConstraintException extends Exception {
public InvalidConstraintException(String message) {
super(message);
}
public InvalidConstraintException(String message) {
super(message);
}
public InvalidConstraintException(String message, Throwable ex) {
super(message, ex);
}
public InvalidConstraintException(String message, Throwable ex) {
super(message, ex);
}
}

View File

@ -1,16 +1,30 @@
package jetbrains.mps.logic.reactor.program;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.program;
public class InvalidRuleException extends Exception {
public InvalidRuleException(String message) {
super(message);
}
public InvalidRuleException(String message) {
super(message);
}
public InvalidRuleException(String message, Throwable throwable) {
super(message, throwable);
}
public InvalidRuleException(String message, Throwable throwable) {
super(message, throwable);
}
}

View File

@ -1,28 +1,47 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.program;
/*Generated by MPS */
/**
* A predicate symbol for an anonymous expression.
*
* @author Fedor Isakov
*/
public class JavaPredicateSymbol extends PredicateSymbol {
public static final JavaPredicateSymbol EXPRESSION0 = new JavaPredicateSymbol(1);
public static final JavaPredicateSymbol EXPRESSION0 = new JavaPredicateSymbol(1);
public static final JavaPredicateSymbol EXPRESSION1 = new JavaPredicateSymbol(2);
public static final JavaPredicateSymbol EXPRESSION1 = new JavaPredicateSymbol(2);
public static final JavaPredicateSymbol EXPRESSION2 = new JavaPredicateSymbol(3);
public static final JavaPredicateSymbol EXPRESSION2 = new JavaPredicateSymbol(3);
public static final JavaPredicateSymbol EXPRESSION3 = new JavaPredicateSymbol(4);
public static final JavaPredicateSymbol EXPRESSION3 = new JavaPredicateSymbol(4);
private static final String EXPRESSION = "expression";
private static final String EXPRESSION = "expression";
private static JavaPredicateSymbol[] KNOWN_SYMBOLS = {EXPRESSION0, EXPRESSION1, EXPRESSION2, EXPRESSION3};
private static JavaPredicateSymbol[] KNOWN_SYMBOLS = {EXPRESSION0, EXPRESSION1, EXPRESSION2, EXPRESSION3};
public static JavaPredicateSymbol withArity(int arity) {
return KNOWN_SYMBOLS[arity];
}
private JavaPredicateSymbol(int arity) {
super(EXPRESSION, arity);
}
private JavaPredicateSymbol(int arity) {
super(EXPRESSION, arity);
}
public static JavaPredicateSymbol withArity(int arity) {
return KNOWN_SYMBOLS[arity];
}
}

View File

@ -1,17 +1,29 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.program;
/*Generated by MPS */
import java.util.Collection;
import java.util.List;
import jetbrains.mps.logic.reactor.logical.LogicalContext;
/**
* A predicate that is provided by a solver. Can be either told or asked.
* A predicate that is provided by a solver. Can be either told or asked.
*
* @author Fedor Isakov
*/
public interface Predicate extends AndItem {
PredicateSymbol symbol();
PredicateSymbol symbol();
}

View File

@ -1,17 +1,36 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.program;
/*Generated by MPS */
/**
* A predicate symbol.
*
* @author Fedor Isakov
*/
public class PredicateSymbol extends Symbol {
public PredicateSymbol(String id, int arity) {
super(id, arity);
}
public PredicateSymbol(String id, int arity) {
super(id, arity);
}
@Override
public String toString() {
return id() + "()/" + arity();
}
@Override
public String toString() {
return id() + "()/" + arity();
}
}

View File

@ -1,13 +1,30 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.program;
/*Generated by MPS */
import jetbrains.mps.logic.reactor.logical.LogicalContext;
import java.util.List;
/**
* A collection of handlers that constitute a constraint rules program.
* A collection of handlers that constitute a constraint rules program.
*
* @author Fedor Isakov
*/
public abstract class Program {

View File

@ -1,34 +1,50 @@
package jetbrains.mps.logic.reactor.program;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.program;
/**
* A constraint rule description.
*
* @author Fedor Isakov
*/
public abstract class Rule {
public abstract Rule.Kind kind();
public abstract Rule.Kind kind();
public abstract String tag();
public abstract String tag();
public abstract Iterable<Constraint> headKept();
public abstract Iterable<Constraint> headKept();
public abstract Iterable<Constraint> headReplaced();
public abstract Iterable<Constraint> headReplaced();
public abstract Iterable<Predicate> guard();
public abstract Iterable<Predicate> guard();
@Deprecated
public abstract Iterable<AndItem> body();
@Deprecated
public abstract Iterable<AndItem> body();
public abstract Iterable<? extends Iterable<AndItem>> bodyAlternation();
public abstract Iterable<? extends Iterable<AndItem>> bodyAlternation();
public abstract Iterable<AndItem> all();
public abstract Iterable<AndItem> all();
public enum Kind {
SIMPLIFICATION(),
PROPAGATION(),
SIMPAGATION()
}
public enum Kind {
SIMPLIFICATION(),
PROPAGATION(),
SIMPAGATION()
}
}

View File

@ -1,54 +1,70 @@
package jetbrains.mps.logic.reactor.program;
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*Generated by MPS */
package jetbrains.mps.logic.reactor.program;
/**
* A symbol used by both constraints and predicates. Is uniquely identified by id and arity.
*
* @author Fedor Isakov
*/
public abstract class Symbol {
protected Symbol(String id, int arity) {
this.id = id;
this.arity = arity;
}
private String id;
private int arity;
public String id() {
return id;
}
public int arity() {
return arity;
}
@Override
public int hashCode() {
int result = 17;
result = 43 * result + ((id != null ? String.valueOf(id).hashCode() : 0));
result = 31 * result + 37 * arity;
return result;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || this.getClass() != o.getClass()) {
return false;
protected Symbol(String id, int arity) {
this.id = id;
this.arity = arity;
}
Symbol that = (Symbol) o;
if ((id != null ? !(id.equals(that.id())) : that.id != null)) {
return false;
}
if (arity != that.arity) {
return false;
public String id() {
return id;
}
return true;
}
public int arity() {
return arity;
}
private String id;
private int arity;
@Override
public int hashCode() {
int result = 17;
result = 43 * result + ((id != null ? String.valueOf(id).hashCode() : 0));
result = 31 * result + 37 * arity;
return result;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || this.getClass() != o.getClass()) {
return false;
}
Symbol that = (Symbol) o;
if ((id != null ? !(id.equals(that.id())) : that.id != null)) {
return false;
}
if (arity != that.arity) {
return false;
}
return true;
}
}

View File

@ -1,254 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<debug-info version="2">
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123140:jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123155:jetbrains.mps.baseLanguage.structure.ExpressionStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068390468200:jetbrains.mps.baseLanguage.structure.FieldDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123159:jetbrains.mps.baseLanguage.structure.IfStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123165:jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068581242864:jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068581242878:jetbrains.mps.baseLanguage.structure.ReturnStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123157:jetbrains.mps.baseLanguage.structure.Statement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070462154015:jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1081236700938:jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070475587102:jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" />
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/3363149567548688543">
<file name="PredicateFactory.java">
<node id="3363149567548689033" at="8,0,9,0" concept="4" trace="predicate#(Ljetbrains/mps/logic/reactor/program/PredicateSymbol;null)Ljetbrains/mps/logic/reactor/program/Predicate;" />
<scope id="3363149567548689033" at="8,0,9,0">
<var name="args" id="3363149567548689115" />
<var name="predicateSymbol" id="3363149567548689065" />
</scope>
<unit id="3363149567548688543" at="6,0,11,0" name="jetbrains.mps.logic.reactor.program.PredicateFactory" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/5841747851381496683">
<file name="ConstraintSymbol.java">
<node id="5841747851381535271" at="11,63,12,43" concept="6" />
<node id="6317379717814129922" at="15,49,16,21" concept="10" />
<node id="5841747851383361011" at="20,28,21,32" concept="6" />
<node id="5841747851381533067" at="11,0,14,0" concept="9" trace="symbol#(Ljava/lang/String;I)Ljetbrains/mps/logic/reactor/program/ConstraintSymbol;" />
<node id="5841747851381516224" at="15,0,18,0" concept="0" trace="ConstraintSymbol#(Ljava/lang/String;I)V" />
<node id="5841747851383347181" at="19,0,23,0" concept="4" trace="toString#()Ljava/lang/String;" />
<scope id="5841747851381533071" at="11,63,12,43" />
<scope id="5841747851381516231" at="15,49,16,21" />
<scope id="5841747851383347185" at="20,28,21,32" />
<scope id="5841747851381533067" at="11,0,14,0">
<var name="arity" id="5841747851381534850" />
<var name="id" id="5841747851381534602" />
</scope>
<scope id="5841747851381516224" at="15,0,18,0">
<var name="arity" id="5841747851381516227" />
<var name="id" id="5841747851381516225" />
</scope>
<scope id="5841747851383347181" at="19,0,23,0" />
<unit id="5841747851381496683" at="9,0,25,0" name="jetbrains.mps.logic.reactor.program.ConstraintSymbol" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/6317379717812926698">
<file name="Program.java">
<node id="8225968737378322884" at="9,0,10,0" concept="4" trace="name#()Ljava/lang/String;" />
<node id="8225968737376927920" at="11,0,12,0" concept="4" trace="constraintSymbols#()Ljava/lang/Iterable;" />
<node id="6317379717812927967" at="13,0,14,0" concept="4" trace="constraintArgumentTypes#(Ljetbrains/mps/logic/reactor/program/ConstraintSymbol;)Ljava/util/List;" />
<node id="8225968737376996320" at="15,0,16,0" concept="4" trace="predicateSymbols#()Ljava/lang/Iterable;" />
<node id="8225968737378224820" at="17,0,18,0" concept="4" trace="rules#()Ljava/lang/Iterable;" />
<scope id="8225968737378322884" at="9,0,10,0" />
<scope id="8225968737376927920" at="11,0,12,0" />
<scope id="6317379717812927967" at="13,0,14,0">
<var name="constraintSymbol" id="6317379717812950981" />
</scope>
<scope id="8225968737376996320" at="15,0,16,0" />
<scope id="8225968737378224820" at="17,0,18,0" />
<unit id="6317379717812926698" at="7,0,21,0" name="jetbrains.mps.logic.reactor.program.Program" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/6317379717814118653">
<file name="Symbol.java">
<node id="6317379717814129293" at="8,42,9,17" concept="1" />
<node id="6317379717814157703" at="9,17,10,23" concept="1" />
<node id="5841747851381516257" at="13,22,14,14" concept="6" />
<node id="5841747851381516264" at="17,22,18,17" concept="6" />
<node id="5841747851381863229" at="22,25,23,20" concept="5" />
<node id="5841747851381863242" at="23,20,24,78" concept="1" />
<node id="5841747851381863258" at="24,78,25,38" concept="1" />
<node id="5841747851381863262" at="25,38,26,18" concept="6" />
<node id="5841747851381863158" at="31,20,32,18" concept="6" />
<node id="5841747851381863164" at="34,55,35,19" concept="6" />
<node id="5841747851381863177" at="36,5,37,0" concept="7" />
<node id="5841747851381863178" at="37,0,38,29" concept="5" />
<node id="5841747851381863196" at="39,67,40,19" concept="6" />
<node id="5841747851381863219" at="42,30,43,19" concept="6" />
<node id="5841747851381863221" at="44,5,45,0" concept="7" />
<node id="5841747851381863222" at="45,0,46,16" concept="6" />
<node id="5841747851381516267" at="49,0,50,0" concept="2" trace="id" />
<node id="5841747851381516270" at="50,0,51,0" concept="2" trace="arity" />
<node id="5841747851381516253" at="13,0,16,0" concept="4" trace="id#()Ljava/lang/String;" />
<node id="5841747851381516260" at="17,0,20,0" concept="4" trace="arity#()I" />
<node id="5841747851381863156" at="30,35,33,5" concept="3" />
<node id="5841747851381863162" at="33,5,36,5" concept="3" />
<node id="5841747851381863194" at="38,29,41,5" concept="3" />
<node id="5841747851381863214" at="41,5,44,5" concept="3" />
<node id="6317379717814128471" at="8,0,12,0" concept="0" trace="Symbol#(Ljava/lang/String;I)V" />
<node id="5841747851381863224" at="21,0,28,0" concept="4" trace="hashCode#()I" />
<node id="5841747851381863152" at="29,0,48,0" concept="4" trace="equals#(Ljava/lang/Object;)Z" />
<scope id="5841747851381516256" at="13,22,14,14" />
<scope id="5841747851381516263" at="17,22,18,17" />
<scope id="5841747851381863157" at="31,20,32,18" />
<scope id="5841747851381863163" at="34,55,35,19" />
<scope id="5841747851381863195" at="39,67,40,19" />
<scope id="5841747851381863218" at="42,30,43,19" />
<scope id="6317379717814128475" at="8,42,10,23" />
<scope id="5841747851381516253" at="13,0,16,0" />
<scope id="5841747851381516260" at="17,0,20,0" />
<scope id="6317379717814128471" at="8,0,12,0">
<var name="arity" id="6317379717814167566" />
<var name="id" id="6317379717814128754" />
</scope>
<scope id="5841747851381863227" at="22,25,26,18">
<var name="result" id="5841747851381863230" />
</scope>
<scope id="5841747851381863224" at="21,0,28,0" />
<scope id="5841747851381863155" at="30,35,46,16">
<var name="that" id="5841747851381863179" />
</scope>
<scope id="5841747851381863152" at="29,0,48,0">
<var name="o" id="5841747851381863184" />
</scope>
<unit id="6317379717814118653" at="6,0,52,0" name="jetbrains.mps.logic.reactor.program.Symbol" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/6317379717814173903">
<file name="PredicateSymbol.java">
<node id="6317379717823619735" at="8,48,9,21" concept="10" />
<node id="6317379717814175785" at="13,28,14,34" concept="6" />
<node id="6317379717814174713" at="8,0,11,0" concept="0" trace="PredicateSymbol#(Ljava/lang/String;I)V" />
<node id="6317379717814175781" at="12,0,16,0" concept="4" trace="toString#()Ljava/lang/String;" />
<scope id="6317379717814174717" at="8,48,9,21" />
<scope id="6317379717814175784" at="13,28,14,34" />
<scope id="6317379717814174713" at="8,0,11,0">
<var name="arity" id="6317379717814174985" />
<var name="id" id="6317379717814174730" />
</scope>
<scope id="6317379717814175781" at="12,0,16,0" />
<unit id="6317379717814173903" at="6,0,18,0" name="jetbrains.mps.logic.reactor.program.PredicateSymbol" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/6317379717814244809">
<file name="AndItem.java">
<node id="6317379717815747154" at="9,0,10,0" concept="4" trace="symbol#()Ljetbrains/mps/logic/reactor/program/Symbol;" />
<node id="6317379717814333446" at="11,0,12,0" concept="4" trace="arguments#()Ljava/util/Collection;" />
<scope id="6317379717815747154" at="9,0,10,0" />
<scope id="6317379717814333446" at="11,0,12,0" />
<unit id="6317379717814244809" at="7,0,14,0" name="jetbrains.mps.logic.reactor.program.AndItem" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/6317379717817889711">
<file name="JavaPredicateSymbol.java">
<node id="1445804513729425338" at="8,0,9,0" concept="8" trace="EXPRESSION0" />
<node id="1445804513729425524" at="10,0,11,0" concept="8" trace="EXPRESSION1" />
<node id="1445804513729425633" at="12,0,13,0" concept="8" trace="EXPRESSION2" />
<node id="1445804513729425764" at="14,0,15,0" concept="8" trace="EXPRESSION3" />
<node id="1445804513728312018" at="16,0,17,0" concept="8" trace="EXPRESSION" />
<node id="3363149567548930373" at="18,0,19,0" concept="8" trace="KNOWN_SYMBOLS" />
<node id="3363149567548931738" at="20,58,21,32" concept="6" />
<node id="6317379717817889916" at="24,42,25,29" concept="10" />
<node id="3363149567548931449" at="20,0,23,0" concept="9" trace="withArity#(I)Ljetbrains/mps/logic/reactor/program/JavaPredicateSymbol;" />
<node id="6317379717817889762" at="24,0,27,0" concept="0" trace="JavaPredicateSymbol#(I)V" />
<scope id="3363149567548931453" at="20,58,21,32" />
<scope id="6317379717817889766" at="24,42,25,29" />
<scope id="3363149567548931449" at="20,0,23,0">
<var name="arity" id="3363149567548931649" />
</scope>
<scope id="6317379717817889762" at="24,0,27,0">
<var name="arity" id="6317379717817890807" />
</scope>
<unit id="6317379717817889711" at="6,0,29,0" name="jetbrains.mps.logic.reactor.program.JavaPredicateSymbol" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/7785665572546345623">
<file name="Constraint.java">
<node id="6317379717814333032" at="14,0,15,0" concept="4" trace="symbol#()Ljetbrains/mps/logic/reactor/program/ConstraintSymbol;" />
<node id="8225968737376931639" at="16,0,17,0" concept="4" trace="argumentTypes#()Ljava/util/List;" />
<node id="5649815580023740085" at="18,0,19,0" concept="4" trace="occurrenceArguments#(Ljetbrains/mps/logic/reactor/logical/LogicalContext;)Ljava/util/Collection;" />
<node id="5131913661991737247" at="25,0,26,0" concept="4" trace="patternPredicates#(Ljava/util/Collection;)Ljava/util/Collection;" />
<scope id="6317379717814333032" at="14,0,15,0" />
<scope id="8225968737376931639" at="16,0,17,0" />
<scope id="5649815580023740085" at="18,0,19,0">
<var name="logicalContext" id="5649815580024092231" />
</scope>
<scope id="5131913661991737247" at="25,0,26,0">
<var name="occurrenceArgs" id="7476246271192674778" />
</scope>
<unit id="7785665572546345623" at="12,0,28,0" name="jetbrains.mps.logic.reactor.program.Constraint" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/7785665572546359770">
<file name="Predicate.java">
<node id="7785665572546360338" at="13,0,14,0" concept="4" trace="symbol#()Ljetbrains/mps/logic/reactor/program/PredicateSymbol;" />
<node id="5649815580025803455" at="15,0,16,0" concept="4" trace="invocationArguments#(Ljetbrains/mps/logic/reactor/logical/LogicalContext;)Ljava/util/Collection;" />
<scope id="7785665572546360338" at="13,0,14,0" />
<scope id="5649815580025803455" at="15,0,16,0">
<var name="logicalContext" id="5649815580025803456" />
</scope>
<unit id="7785665572546359770" at="11,0,19,0" name="jetbrains.mps.logic.reactor.program.Predicate" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/8335224865064895074">
<file name="Rule.java">
<node id="8335224865064895076" at="8,0,9,0" concept="4" trace="kind#()Ljetbrains/mps/logic/reactor/program/Rule/Kind;" />
<node id="7303011777414843895" at="10,0,11,0" concept="4" trace="tag#()Ljava/lang/String;" />
<node id="8335224865064895081" at="12,0,13,0" concept="4" trace="headKept#()Ljava/lang/Iterable;" />
<node id="8335224865064895087" at="14,0,15,0" concept="4" trace="headReplaced#()Ljava/lang/Iterable;" />
<node id="8335224865064895093" at="16,0,17,0" concept="4" trace="guard#()Ljava/lang/Iterable;" />
<node id="1044388088885792501" at="21,0,22,0" concept="4" trace="bodyAlternation#()Ljava/lang/Iterable;" />
<node id="8335224865065122390" at="23,0,24,0" concept="4" trace="all#()Ljava/lang/Iterable;" />
<node id="8335224865064895099" at="18,0,20,0" concept="4" trace="body#()Ljava/lang/Iterable;" />
<scope id="8335224865064895076" at="8,0,9,0" />
<scope id="7303011777414843895" at="10,0,11,0" />
<scope id="8335224865064895081" at="12,0,13,0" />
<scope id="8335224865064895087" at="14,0,15,0" />
<scope id="8335224865064895093" at="16,0,17,0" />
<scope id="1044388088885792501" at="21,0,22,0" />
<scope id="8335224865065122390" at="23,0,24,0" />
<scope id="8335224865064895099" at="18,0,20,0" />
<unit id="8335224865064895106" at="25,0,30,0" name="jetbrains.mps.logic.reactor.program.Rule$Kind" />
<unit id="8335224865064895074" at="6,0,32,0" name="jetbrains.mps.logic.reactor.program.Rule" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/9010599623174261813">
<file name="InvalidRuleException.java">
<node id="9010599623174265602" at="8,47,9,19" concept="10" />
<node id="9010599623174269829" at="12,68,13,30" concept="10" />
<node id="9010599623174265548" at="8,0,11,0" concept="0" trace="InvalidRuleException#(Ljava/lang/String;)V" />
<node id="9010599623174269823" at="12,0,15,0" concept="0" trace="InvalidRuleException#(Ljava/lang/String;Ljava/lang/Throwable;)V" />
<scope id="9010599623174265552" at="8,47,9,19" />
<scope id="9010599623174269828" at="12,68,13,30" />
<scope id="9010599623174265548" at="8,0,11,0">
<var name="message" id="9010599623174265564" />
</scope>
<scope id="9010599623174269823" at="12,0,15,0">
<var name="message" id="9010599623174269824" />
<var name="throwable" id="9010599623174270172" />
</scope>
<unit id="9010599623174261813" at="6,0,17,0" name="jetbrains.mps.logic.reactor.program.InvalidRuleException" />
</file>
</root>
<root nodeRef="r:f43ee4a0-488a-425a-87a0-594ab3b0d15f(jetbrains.mps.logic.reactor.program)/9010599623176680927">
<file name="InvalidConstraintException.java">
<node id="9010599623176682194" at="8,53,9,19" concept="10" />
<node id="9010599623176682617" at="12,67,13,23" concept="10" />
<node id="9010599623176682144" at="8,0,11,0" concept="0" trace="InvalidConstraintException#(Ljava/lang/String;)V" />
<node id="9010599623176682613" at="12,0,15,0" concept="0" trace="InvalidConstraintException#(Ljava/lang/String;Ljava/lang/Throwable;)V" />
<scope id="9010599623176682148" at="8,53,9,19" />
<scope id="9010599623176682616" at="12,67,13,23" />
<scope id="9010599623176682144" at="8,0,11,0">
<var name="message" id="9010599623176682158" />
</scope>
<scope id="9010599623176682613" at="12,0,15,0">
<var name="ex" id="9010599623176682960" />
<var name="message" id="9010599623176682619" />
</scope>
<unit id="9010599623176680927" at="6,0,17,0" name="jetbrains.mps.logic.reactor.program.InvalidConstraintException" />
</file>
</root>
</debug-info>

View File

@ -9,41 +9,20 @@
</component>
<component name="FacetManager">
<facet type="kotlin-language" name="Kotlin">
<configuration version="1">
<option name="compilerInfo">
<KotlinCompilerInfo>
<option name="compilerSettings">
<CompilerSettings />
</option>
<option name="k2jsCompilerArguments">
<K2JSCompilerArguments />
</option>
<option name="k2jvmCompilerArguments">
<K2JVMCompilerArguments>
<option name="jvmTarget" value="1.8" />
</K2JVMCompilerArguments>
</option>
<option name="_commonCompilerArguments">
<DummyImpl>
<option name="pluginClasspaths">
<array />
</option>
<option name="coroutinesWarn" value="true" />
<option name="pluginOptions">
<array />
</option>
</DummyImpl>
</option>
</KotlinCompilerInfo>
</option>
<option name="useProjectSettings" value="false" />
<option name="versionInfo">
<KotlinVersionInfo>
<option name="apiLevel" value="1.1" />
<option name="languageLevel" value="1.1" />
<option name="targetPlatformName" value="JVM 1.8" />
</KotlinVersionInfo>
</option>
<configuration version="2" platform="JVM 1.8" useProjectSettings="false">
<compilerSettings />
<compilerArguments>
<option name="jvmTarget" value="1.8" />
<option name="languageVersion" value="1.1" />
<option name="apiVersion" value="1.1" />
<option name="pluginClasspaths">
<array />
</option>
<option name="coroutinesWarn" value="true" />
<option name="pluginOptions">
<array />
</option>
</compilerArguments>
</configuration>
</facet>
</component>

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.evaluation.*

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.evaluation.*

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import com.github.andrewoma.dexx.collection.ConsList

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.evaluation.PredicateInvocation

View File

@ -1,3 +1,18 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.evaluation.ConstraintOccurrence

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.evaluation.ConstraintOccurrence

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.evaluation.ConstraintOccurrence

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.evaluation.ConstraintOccurrence

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import com.github.andrewoma.dexx.collection.ConsList

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.evaluation.ConstraintOccurrence

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import com.github.andrewoma.dexx.collection.DerivedKeyHashMap

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import jetbrains.mps.logic.reactor.logical.Logical

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.core
import com.github.andrewoma.dexx.collection.ConsList

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.util
import com.github.andrewoma.dexx.collection.ConsList

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.util
import com.github.andrewoma.dexx.collection.DerivedKeyHashMap

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.util
class IdWrapper<T>(val wrapped: T) {

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.util
import java.util.*

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.logic.reactor.util
import java.util.*

View File

@ -1,5 +1,5 @@
/*
* Copyright 2014 JetBrains s.r.o.
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
* Copyright 2014 JetBrains s.r.o.
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View File

@ -1,3 +1,19 @@
/*
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrains.mps.unification;
/**

View File

@ -1,5 +1,5 @@
/*
* Copyright 2014 JetBrains s.r.o.
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
* Copyright 2015 JetBrains s.r.o.
* Copyright 2014-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View File

@ -2,41 +2,20 @@
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="kotlin-language" name="Kotlin">
<configuration version="1">
<option name="compilerInfo">
<KotlinCompilerInfo>
<option name="compilerSettings">
<CompilerSettings />
</option>
<option name="k2jsCompilerArguments">
<K2JSCompilerArguments />
</option>
<option name="k2jvmCompilerArguments">
<K2JVMCompilerArguments>
<option name="jvmTarget" value="1.8" />
</K2JVMCompilerArguments>
</option>
<option name="_commonCompilerArguments">
<DummyImpl>
<option name="pluginClasspaths">
<array />
</option>
<option name="coroutinesWarn" value="true" />
<option name="pluginOptions">
<array />
</option>
</DummyImpl>
</option>
</KotlinCompilerInfo>
</option>
<option name="useProjectSettings" value="false" />
<option name="versionInfo">
<KotlinVersionInfo>
<option name="apiLevel" value="1.1" />
<option name="languageLevel" value="1.1" />
<option name="targetPlatformName" value="JVM 1.8" />
</KotlinVersionInfo>
</option>
<configuration version="2" platform="JVM 1.8" useProjectSettings="false">
<compilerSettings />
<compilerArguments>
<option name="jvmTarget" value="1.8" />
<option name="languageVersion" value="1.1" />
<option name="apiVersion" value="1.1" />
<option name="pluginClasspaths">
<array />
</option>
<option name="coroutinesWarn" value="true" />
<option name="pluginOptions">
<array />
</option>
</compilerArguments>
</configuration>
</facet>
</component>

View File

@ -10,41 +10,20 @@
</component>
<component name="FacetManager">
<facet type="kotlin-language" name="Kotlin">
<configuration version="1">
<option name="compilerInfo">
<KotlinCompilerInfo>
<option name="compilerSettings">
<CompilerSettings />
</option>
<option name="k2jsCompilerArguments">
<K2JSCompilerArguments />
</option>
<option name="k2jvmCompilerArguments">
<K2JVMCompilerArguments>
<option name="jvmTarget" value="1.8" />
</K2JVMCompilerArguments>
</option>
<option name="_commonCompilerArguments">
<DummyImpl>
<option name="pluginClasspaths">
<array />
</option>
<option name="coroutinesWarn" value="true" />
<option name="pluginOptions">
<array />
</option>
</DummyImpl>
</option>
</KotlinCompilerInfo>
</option>
<option name="useProjectSettings" value="false" />
<option name="versionInfo">
<KotlinVersionInfo>
<option name="apiLevel" value="1.1" />
<option name="languageLevel" value="1.1" />
<option name="targetPlatformName" value="JVM 1.8" />
</KotlinVersionInfo>
</option>
<configuration version="2" platform="JVM 1.8" useProjectSettings="false">
<compilerSettings />
<compilerArguments>
<option name="jvmTarget" value="1.8" />
<option name="languageVersion" value="1.1" />
<option name="apiVersion" value="1.1" />
<option name="pluginClasspaths">
<array />
</option>
<option name="coroutinesWarn" value="true" />
<option name="pluginOptions">
<array />
</option>
</compilerArguments>
</configuration>
</facet>
</component>