IStrategoTerm errorTree = STRCommands.assimilate("sugarj-analyze", res.getDesugaringsFile(), tuple, new HybridInterpreter());
assert errorTree.getTermType() == IStrategoTerm.TUPLE && errorTree.getSubtermCount() == 4 :
"error in sugarj-analyze, did not return tuple with 4 elements";
IStrategoList semErrors = Tools.termAt(errorTree, 1);
IStrategoList warnings = Tools.termAt(errorTree, 2);
IStrategoList notes = Tools.termAt(errorTree, 3);
success &= semErrors.isEmpty() && warnings.isEmpty() && notes.isEmpty();
for (IStrategoTerm error : semErrors.getAllSubterms())
if (error.getTermType() == IStrategoTerm.LIST)
for (IStrategoTerm deepError : error.getAllSubterms())
reportCLI(deepError, "error");
else
reportCLI(error, "error");
for (IStrategoTerm warning : warnings.getAllSubterms())
if (warning.getTermType() == IStrategoTerm.LIST)
for (IStrategoTerm deepWarning : warning.getAllSubterms())
reportCLI(deepWarning, "warning");
else
reportCLI(warning, "warning");
for (IStrategoTerm note : notes.getAllSubterms())
if (note.getTermType() == IStrategoTerm.LIST)
for (IStrategoTerm deepNote : note.getAllSubterms())
reportCLI(deepNote, "note");
else
reportCLI(note, "note");