if (!source.getProblems().isEmpty()) {
fail(source.getProblems().get(0).toString());
}
Node node = source.getNodes().get(0);
node.accept(new SyntacticValidityVisitor(true));
node.accept(new ForwardingAstVisitor() {
@Override public boolean visitNode(Node node) {
for (Message m : node.getMessages()) if (m.isError()) {
fail(String.format("Source: %s[%s]: %s: %s\n", source.getName(), node.getPosition(), node, m.getMessage()));