src/main/java/wybs/lang/SyntacticException.java
public void outputSourceError(PrintStream output, boolean brief) {
		Attribute.Span span;
		if (entry == null || element == null) {
			output.println("syntax error: " + getMessage());
			return;
		} else if(element instanceof Attribute.Span) {
			span = (Attribute.Span) element;
		} else  {
			SyntacticHeap parent = element.getHeap();
			span = parent.getParent(element,Attribute.Span.class);
		}
		//
		EnclosingLine enclosing = (span == null) ? null : readEnclosingLine(entry, span);
		if(enclosing == null) {
			output.println("syntax error: " + getMessage());
		} else if(brief) {
			printBriefError(output,entry,enclosing,getMessage());
		} else {
			printFullError(output,entry,enclosing,getMessage());
		}
	}
public void outputSourceError(PrintStream output, boolean brief) {
		Attribute.Span span;
		if (entry == null || element == null) {
			output.println("syntax error: " + getMessage());
			return;
		} else if(element instanceof Attribute.Span) {
			span = (Attribute.Span) element;
		} else  {
			SyntacticHeap parent = element.getHeap();
			span = parent.getParent(element,Attribute.Span.class);
		}
		//
		EnclosingLine enclosing = (span == null) ? null : readEnclosingLine(entry, span);
		if(enclosing == null) {
			output.println("syntax error: " + getMessage());
		} else if(brief) {
			printBriefError(output,entry,enclosing,getMessage());
		} else {
			printFullError(output,entry,enclosing,getMessage());
		}
	}
Output the syntax error to a given output stream in either full or brief
form. Brief form is intended to be used by 3rd party tools and is easier
to parse. In full form, contextual information from the originating
source file is included.