1 package org.simantics.scl.compiler.elaboration.relations;
3 import org.simantics.scl.compiler.elaboration.chr.plan.PlanContext;
4 import org.simantics.scl.compiler.elaboration.expressions.Expression;
5 import org.simantics.scl.compiler.elaboration.expressions.Variable;
6 import org.simantics.scl.compiler.elaboration.query.compilation.EnforcingContext;
7 import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;
8 import org.simantics.scl.compiler.types.Type;
10 public abstract class AbstractRelation implements SCLRelation {
13 public int getPhase() {
18 public Expression generateEnforce(long location, EnforcingContext context, Type[] typeParameters, Variable[] parameters) {
19 throw new UnsupportedOperationException(getClass().getSimpleName() + " does not support enforce.");
23 public void generateEnforce(PlanContext context, CodeWriter w, long location, Expression[] parameters) {
24 throw new UnsupportedOperationException(getClass().getSimpleName() + " does not support enforce.");
28 public void generateIterate(PlanContext context, CodeWriter w, long location, int boundMask, Variable[] variables,
29 Expression[] expressions) {
30 throw new UnsupportedOperationException(getClass().getSimpleName() + " does not support iterate.");