import org.simantics.scl.compiler.errors.Locations;
import org.simantics.scl.compiler.internal.codegen.references.IVal;
import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;
-import org.simantics.scl.compiler.internal.elaboration.utils.ExpressionDecorator;
import org.simantics.scl.compiler.internal.interpreted.IExpression;
import org.simantics.scl.compiler.top.ExpressionInterpretationContext;
import org.simantics.scl.compiler.types.Type;
this.in = in;
}
- @Override
- public void collectRefs(TObjectIntHashMap<Object> allRefs, TIntHashSet refs) {
- ruleset.collectRefs(allRefs, refs);
- in.collectRefs(allRefs, refs);
- }
@Override
public void collectVars(TObjectIntHashMap<Variable> allVars, TIntHashSet vars) {
ruleset.collectVars(allVars, vars);
in.collectVars(allVars, vars);
}
- @Override
- public void forVariables(VariableProcedure procedure) {
- ruleset.forVariables(procedure);
- in.forVariables(procedure);
- }
+
@Override
protected void updateType() throws MatchException {
setType(in.getType());
}
+
@Override
public IVal toVal(CompilationContext context, CodeWriter w) {
ruleset.generateCode(w);
return in.toVal(context, w);
}
+
@Override
public void collectFreeVariables(THashSet<Variable> vars) {
ruleset.collectFreeVariables(vars);
in.collectFreeVariables(vars);
}
+
@Override
public Expression resolve(TranslationContext context) {
if(context.currentRuleset != null) {
}
}
@Override
- public Expression decorate(ExpressionDecorator decorator) {
- in = in.decorate(decorator);
- return this;
- }
- @Override
public void collectEffects(THashSet<Type> effects) {
ruleset.collectEffects(effects);
in.collectEffects(effects);