package org.simantics.scl.compiler.elaboration.equation; import org.simantics.scl.compiler.elaboration.contexts.ReplaceContext; import org.simantics.scl.compiler.elaboration.contexts.TranslationContext; import org.simantics.scl.compiler.elaboration.contexts.TypingContext; import org.simantics.scl.compiler.elaboration.expressions.Variable; import org.simantics.scl.compiler.internal.parsing.Symbol; import gnu.trove.map.hash.TObjectIntHashMap; import gnu.trove.set.hash.TIntHashSet; public abstract class Equation extends Symbol { public static final Equation[] EMPTY_ARRAY = new Equation[0]; public abstract void setLocationDeep(long loc); public abstract void checkType(TypingContext context); public abstract void collectVars(TObjectIntHashMap allVars, TIntHashSet vars); public abstract void resolve(TranslationContext context); public abstract void accept(EquationVisitor visitor); public abstract Equation replace(ReplaceContext context); }