/** thrown when the parser arrives at a state from which it is clear that no valid parse can result */
public class ParseFailed extends RuntimeException {
- private final Token.Location location;
+ private final Input.Location location;
private final String message;
public ParseFailed() { this("", null); }
- public ParseFailed(String message, Token.Location loc) { this.location = loc; this.message = message; }
- public Token.Location getLocation() { return location; }
+ public ParseFailed(String message, Input.Location loc) { this.location = loc; this.message = message; }
+ public Input.Location getLocation() { return location; }
public String toString() { return message/* + (location==null ? "" : (" at " + location))*/; }
- public static void complain(Node n, HashMap<String,HashSet<String>> errors, boolean force) {
+ public static <Tok> void complain(GSS.Phase<Tok>.Node n, HashMap<String,HashSet<String>> errors, boolean force) {
//if (n.touched) return;
//n.touched = true;
for(Position p : n.state) {
}
return ANSI.purple(ret.toString());
}
- public static String error(String message, Token token, Iterable<Node> nodes) {
+ public static String error(String message, Object token, Iterable<Node> nodes) {
String lookAhead = token==null ? "<EOF>" : token.toString();
StringBuffer ret = new StringBuffer();
ret.append("\n ");