import org.simantics.scl.compiler.types.exceptions.UnificationException;
import org.simantics.scl.compiler.types.util.TConComparator;
import org.simantics.scl.compiler.types.util.TypeUnparsingContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import gnu.trove.map.hash.THashMap;
import gnu.trove.set.hash.THashSet;
public class ConstraintSolver {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConstraintSolver.class);
+
public static THashSet<TCon> DEFAULTS_IGNORE = new THashSet<TCon>();
public static THashMap<List<TCon>, Type> DEFAULTS = new THashMap<List<TCon>, Type>();
TypeUnparsingContext tuc = SCLCompilerConfiguration.TRACE_CONSTRAINT_SOLVER ?
new TypeUnparsingContext() : null;
if(SCLCompilerConfiguration.TRACE_CONSTRAINT_SOLVER) {
- System.out.println();
- System.out.println("GIVEN:");
+ LOGGER.info("");
+ LOGGER.info("GIVEN:");
for(TPred g : given)
- System.out.println(" " + g.toString(tuc));
- System.out.println("DEMANDS:");
+ LOGGER.info(" " + g.toString(tuc));
+ LOGGER.info("DEMANDS:");
for(EVariable demand : demands)
- System.out.println(" " + demand.getType().toString(tuc));
- System.out.println("==>");
+ LOGGER.info(" " + demand.getType().toString(tuc));
+ LOGGER.info("==>");
}
ConstraintSet cs = new ConstraintSet(environment);
ArrayList<ArrayList<Constraint>> groups =
groupConstraintsByCommonMetavars(unsolvedConstraints);
if(SCLCompilerConfiguration.TRACE_CONSTRAINT_SOLVER) {
- System.out.println("DEFAULT GROUPS:");
+ LOGGER.info("DEFAULT GROUPS:");
for(ArrayList<Constraint> group : groups) {
for(Constraint c : group)
- System.out.println(" " + c.constraint.toString(tuc));
- System.out.println(" --");
+ LOGGER.info(" " + c.constraint.toString(tuc));
+ LOGGER.info(" --");
}
}
throw new InternalCompilerError();
}
for(Constraint constraint : group) {
- Reduction reduction = environment.reduce(constraint.constraint);
+ Reduction reduction = environment.reduce(constraint.demandLocation, constraint.constraint);
if(reduction.demands.length > 0)
throw new InternalCompilerError();
constraint.setGenerator(Constraint.STATE_HAS_INSTANCE,
}
if(SCLCompilerConfiguration.TRACE_CONSTRAINT_SOLVER) {
- System.out.println("UNSOLVED:");
+ LOGGER.info("UNSOLVED:");
for(Constraint c : unsolvedConstraints)
- System.out.println(" " + c.constraint.toString(tuc));
- System.out.println("SOLVED:");
+ LOGGER.info(" " + c.constraint.toString(tuc));
+ LOGGER.info("SOLVED:");
for(Constraint c : solvedConstraints)
- System.out.println(" " + c.constraint.toString(tuc) + " <= " + c.generator);
- //System.out.println("APPLY DEFAULTS: " + applyDefaults);
+ LOGGER.info(" " + c.constraint.toString(tuc) + " <= " + c.generator);
+ //LOGGER.info("APPLY DEFAULTS: " + applyDefaults);
}
return new ReducedConstraints(givenConstraints,