diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/evaluation/MatchRule.java b/reactor/Core/src/jetbrains/mps/logic/reactor/evaluation/MatchRule.java index 7ebb1850..6a873867 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/evaluation/MatchRule.java +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/evaluation/MatchRule.java @@ -23,6 +23,8 @@ import jetbrains.mps.logic.reactor.program.Rule; /** * A binding of a rule and the constraint occurrences that matched its head. * + * // FIXME rename to RuleMatch + * * @author Fedor Isakov */ public interface MatchRule { diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/program/Handler.java b/reactor/Core/src/jetbrains/mps/logic/reactor/program/Handler.java index f2a277f9..625fef21 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/program/Handler.java +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/program/Handler.java @@ -19,6 +19,7 @@ package jetbrains.mps.logic.reactor.program; /** * A handler is a container of rules. *

+ * FIXME to be renamed to RulesList * @author Fedor Isakov */ public abstract class Handler { diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/program/Program.java b/reactor/Core/src/jetbrains/mps/logic/reactor/program/Program.java index ca571379..943a51da 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/program/Program.java +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/program/Program.java @@ -25,30 +25,36 @@ import java.util.List; /** * A collection of handlers that constitute a constraint rules program. * + * FIXME a handler is to be renamed to RulesList * @author Fedor Isakov */ public abstract class Program { public abstract String name(); - public abstract Iterable constraintSymbols(); + /** + * @deprecated no usages + * @return + */ + @Deprecated + public Iterable constraintSymbols() { throw new UnsupportedOperationException (); } - public abstract List> constraintArgumentTypes(ConstraintSymbol constraintSymbol); + /** + * @deprecated no usages + * @return + */ + @Deprecated + public List> constraintArgumentTypes(ConstraintSymbol constraintSymbol) { throw new UnsupportedOperationException (); } - public abstract Iterable predicateSymbols(); + /** + * @deprecated no usages + * @return + */ + @Deprecated + public Iterable predicateSymbols() { throw new UnsupportedOperationException (); } public abstract Iterable handlers(); - /** - * @deprecated use the overloaded method with InvocationContext parameter - */ - @Deprecated - public List instantiateArguments(List arguments, LogicalContext logicalContext) { - throw new UnsupportedOperationException(); - } - - public List instantiateArguments(List arguments, LogicalContext logicalContext, InvocationContext ignore) { - return instantiateArguments(arguments, logicalContext); - } + public abstract List instantiateArguments(List arguments, LogicalContext logicalContext, InvocationContext invocationContext); } diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/program/Rule.java b/reactor/Core/src/jetbrains/mps/logic/reactor/program/Rule.java index dda9379b..25e4b79f 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/program/Rule.java +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/program/Rule.java @@ -26,8 +26,16 @@ public abstract class Rule { public abstract Rule.Kind kind(); + /** + * A tag uniquely identifies the rule. + */ public abstract String tag(); + /** + * An origin serves as justification for all constraints affected by this rule. + */ + public Object origin() { return null; } + public abstract Iterable headKept(); public abstract Iterable headReplaced(); diff --git a/reactor/Test/src/program/MockProgram.kt b/reactor/Test/src/program/MockProgram.kt index 266c3780..8c4c7418 100644 --- a/reactor/Test/src/program/MockProgram.kt +++ b/reactor/Test/src/program/MockProgram.kt @@ -2,6 +2,7 @@ * @author Fedor Isakov */ +import jetbrains.mps.logic.reactor.evaluation.InvocationContext import jetbrains.mps.logic.reactor.logical.LogicalContext import jetbrains.mps.logic.reactor.logical.MetaLogical import jetbrains.mps.logic.reactor.program.* @@ -96,6 +97,7 @@ class MockProgram(val name: String, val handlers: List, val registry: M override fun name(): String = name + override fun constraintSymbols(): Iterable = registry.constraintSymbols() @@ -105,7 +107,7 @@ class MockProgram(val name: String, val handlers: List, val registry: M override fun predicateSymbols(): Iterable = registry.predicateSymbols() - override fun instantiateArguments(arguments: List<*>, logicalContext: LogicalContext): List<*> = + override fun instantiateArguments(arguments: List<*>, logicalContext: LogicalContext, invocationContext: InvocationContext): List<*> = arguments.map { a -> if (a is MetaLogical<*>) logicalContext.variable(a) else a