package com.babel17.interpreter.parser; import com.babel17.syntaxtree.Location; import java.util.*; public final class ParseException extends RuntimeException { public static class Message extends ErrorMessage { public Message(Location loc, String message) { super(loc, message); } } public ArrayList<Message> messages; public ParseException() { super(""); messages = new ArrayList<Message>(); } public ParseException(Location loc, String message) { super(message); messages = new ArrayList<Message>(); addMessage(loc, message); } public Location location() { if (countMessages() == 0) return null; else return getMessage(0).location(); } public int countMessages() { return messages.size(); } public Message getMessage(int i) { return messages.get(i); } public void addMessage(Location loc, String message) { messages.add(new Message(loc, message)); } }