use of org.abs_models.backend.prettyprint.DefaultABSFormatter in project abstools by abstools.
the class PartialFunctionTest method prettyPrintImplemented.
@Test
public void prettyPrintImplemented() throws NotImplementedYetException, IOException {
Model model = expand(parse("apply(inc)(0);", applyFunction(), incFunction()));
PartialFunctionDecl func = getPartialFunction(model, "apply");
assertNotNull(func);
String printed;
try (StringWriter writer = new StringWriter();
PrintWriter pw = new PrintWriter(writer)) {
func.doPrettyPrint(pw, new DefaultABSFormatter(pw));
printed = writer.toString();
}
assertFalse(printed.isEmpty());
}
use of org.abs_models.backend.prettyprint.DefaultABSFormatter in project abstools by abstools.
the class PardefTest method expand.
protected final Model expand(Model model) {
try {
model.flattenTraitOnly();
model.expandPartialFunctions();
SemanticConditionList e = model.typeCheck();
assertFalse("Type check errors! First: " + e.getFirstError(), e.containsErrors());
return model;
} catch (Throwable e) {
if (e instanceof PardefModellingException) {
// prettyprint could fail if expansion left the AST in an invalid state
throw e;
}
PrintWriter pw = new PrintWriter(System.out);
model.lookupModule("UnitTest").doPrettyPrint(pw, new DefaultABSFormatter(pw));
pw.flush();
throw e;
}
}
use of org.abs_models.backend.prettyprint.DefaultABSFormatter in project abstools by abstools.
the class OtherAnalysisTests method prettyPrint.
public static String prettyPrint(Model m2) {
StringWriter writer = new StringWriter();
PrintWriter w = new PrintWriter(writer);
ABSFormatter f = new DefaultABSFormatter(w);
m2.doPrettyPrint(w, f);
return writer.toString();
}
use of org.abs_models.backend.prettyprint.DefaultABSFormatter in project abstools by abstools.
the class ASTBasedABSTestRunnerGenerator method generateTestRunner.
@Override
public void generateTestRunner(PrintStream stream) {
// In order to safely call module.doPrettyPrint() we need a complete AST
Model model = new Model();
CompilationUnit compilationunit = new CompilationUnit();
ModuleDecl module = new ModuleDecl();
model.addCompilationUnitNoTransform(compilationunit);
compilationunit.addModuleDeclNoTransform(module);
module.setName(RUNNER_MAIN);
module.setImportList(generateImportsAST());
module.setBlock(generateMainBlockAST(module.getImportList()));
PrintWriter writer = new PrintWriter(stream, true);
ABSFormatter formatter = new DefaultABSFormatter(writer);
module.doPrettyPrint(writer, formatter);
}
Aggregations