use of abs.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);
try (StringWriter writer = new StringWriter();
PrintWriter pw = new PrintWriter(writer)) {
func.prettyPrint(pw, new DefaultABSFormatter(pw));
assertFalse(writer.toString().isEmpty());
}
}
use of abs.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 abs.backend.prettyprint.DefaultABSFormatter in project abstools by abstools.
the class ABSUnitTestCaseTranslator method printToFile.
@SuppressWarnings("rawtypes")
private void printToFile(List<ASTNode<ASTNode>> nodes, File file) {
try {
PrintStream stream = new PrintStream(file);
PrintWriter writer = new PrintWriter(stream, true);
ABSFormatter formatter = new DefaultABSFormatter(writer);
for (ASTNode<ASTNode> n : nodes) {
n.doPrettyPrint(writer, formatter);
}
} catch (FileNotFoundException e) {
e.printStackTrace(new PrintStream(ConsoleHandler.getDefault().newMessageStream()));
}
}
use of abs.backend.prettyprint.DefaultABSFormatter in project abstools by abstools.
the class ASTBasedABSTestRunnerGenerator method generateTestRunner.
@Override
public void generateTestRunner(PrintStream stream) {
ModuleDecl module = new ModuleDecl();
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