code: 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());
  		}
  	}
docs: 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.