KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > groovy > control > messages > SyntaxErrorMessage


1 package org.codehaus.groovy.control.messages;
2
3 import org.codehaus.groovy.control.Janitor;
4 import org.codehaus.groovy.control.ProcessingUnit;
5 import org.codehaus.groovy.control.SourceUnit;
6 import org.codehaus.groovy.syntax.SyntaxException;
7
8 import java.io.PrintWriter JavaDoc;
9
10
11 /**
12  * A class for error messages produced by the parser system.
13  *
14  * @author <a HREF="mailto:cpoirier@dreaming.org">Chris Poirier</a>
15  * @version $Id: SyntaxErrorMessage.java,v 1.2 2004/12/07 21:53:00 spullara Exp $
16  */

17
18 public class SyntaxErrorMessage extends Message {
19     protected SyntaxException cause = null;
20
21     public SyntaxErrorMessage(SyntaxException cause) {
22         this.cause = cause;
23     }
24
25
26     /**
27      * Returns the underlying SyntaxException.
28      */

29
30     public SyntaxException getCause() {
31         return this.cause;
32     }
33
34
35     /**
36      * Writes out a nicely formatted summary of the syntax error.
37      */

38
39     public void write(PrintWriter JavaDoc output, ProcessingUnit context, Janitor janitor) {
40         SourceUnit source = (SourceUnit) context; // This is reliably true
41

42         String JavaDoc name = source.getName();
43         int line = getCause().getStartLine();
44         int column = getCause().getStartColumn();
45         String JavaDoc sample = source.getSample(line, column, janitor);
46
47         output.print(name + ": " + line + ": " + getCause().getMessage());
48         if (sample != null) {
49             output.println();
50             output.print(source.getSample(line, column, janitor));
51         }
52     }
53
54
55 }
56
57
58
59
Popular Tags