package org.rascalmpl.library.experiments.Compiler;
import org.rascalmpl.library.experiments.Compiler.RVM.Interpreter.observers.CoverageFrameObserver;
import org.rascalmpl.library.experiments.Compiler.RVM.Interpreter.RascalExecutionContext;
import org.rascalmpl.value.IList;
import org.rascalmpl.value.IValueFactory;
public class CoverageCompiled extends Coverage {
private CoverageFrameObserver coverageObserver;
public CoverageCompiled(IValueFactory values){
super(values);
}
public void startCoverage(RascalExecutionContext rex){
if(coverageObserver == null){
coverageObserver = new CoverageFrameObserver(null);
}
coverageObserver.startObserving();
}
public void stopCoverage(RascalExecutionContext rex){
coverageObserver.stopObserving();
}
public IList getCoverage(RascalExecutionContext rex){
assert coverageObserver != null: "startCoverage not called before getCoverage";
IList res = coverageObserver.getData();
coverageObserver.stopObserving();
return res;
}
// public void printCoverage(RascalExecutionContext rex){
// System.err.println("printCoverage");
// coverageCollector.printData(rex.getStdOut());
// rex.getRVM().resetLocationCollector();
// }
}