3 import java.util.Vector;
5 public class SimpleIRErrorReporter implements IRErrorReporter {
13 public SimpleIRErrorReporter () {
14 messages = new Vector();
19 public void setFilename(String filename) {
20 this.filename = new String(filename + ":");
23 public void report(ParseNode v, String s) {
25 LinedMessage sem = new LinedMessage();
35 public void warn(ParseNode v, String s) {
37 LinedMessage sem = new LinedMessage();
46 private boolean messageExists(LinedMessage sem) {
47 for (int i = 0; i < messages.size(); i++) {
49 LinedMessage cur = (LinedMessage) messages.elementAt(i);
51 if (cur.message.equals(sem.message))
58 private void add(LinedMessage sem) {
60 if (messageExists(sem))
64 messages.addElement(sem);
69 for (i = 0; i < messages.size(); i++) {
71 LinedMessage cur = (LinedMessage)messages.elementAt(i);
73 if (cur.pn.getLine() > sem.pn.getLine()) {
78 messages.insertElementAt(sem, i);
81 public String toString() {
82 String output = new String();
84 for (int i = 0; i < messages.size(); i++) {
85 LinedMessage sem = (LinedMessage)messages.elementAt(i);
87 output += "Semantic Error";
89 output += "Semantic Warning";
93 output += ": " + filename + ": "+sem.pn.getLine() + ": ";
98 output += sem.message;
108 public String message;