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 .