package org.simantics.scl.compiler.elaboration.expressions; import gnu.trove.map.hash.THashMap; import org.simantics.scl.compiler.elaboration.contexts.TranslationContext; import org.simantics.scl.compiler.elaboration.expressions.ERuleset.DatalogRule; import org.simantics.scl.compiler.elaboration.expressions.block.RuleStatement; import org.simantics.scl.compiler.elaboration.relations.LocalRelation; import org.simantics.scl.compiler.errors.Locations; public class EPreRuleset extends ASTExpression { RuleStatement[] statements; Expression in; public EPreRuleset(RuleStatement[] statements, Expression in) { this.statements = statements; this.in = in; } @Override public Expression resolve(TranslationContext context) { THashMap relations = new THashMap(); DatalogRule[] rules = new DatalogRule[statements.length]; context.pushRelationFrame(); try { for(int i=0;i