X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FParseFailed.java;h=eb11b11990566c919213ba4a5bc3d03c79658496;hb=8ac1795e6098dcf10b94a854351162695181b83d;hp=9a7012ffddf4d2f899b03129de2da561b9a0eacf;hpb=ddf7ffb485e6b3dd0fe6b1b39b47a21a1e4b8973;p=sbp.git diff --git a/src/edu/berkeley/sbp/ParseFailed.java b/src/edu/berkeley/sbp/ParseFailed.java index 9a7012f..eb11b11 100644 --- a/src/edu/berkeley/sbp/ParseFailed.java +++ b/src/edu/berkeley/sbp/ParseFailed.java @@ -9,16 +9,18 @@ import java.util.*; /** 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> errors, boolean force) { - if (n.touched) return; - n.touched = true; + // FIXME + private static HashSet touched = new HashSet(); + public static void complain(GSS.Phase.Node n, HashMap> errors, boolean force) { + if (touched.contains(n)) return; + touched.add(n); for(Position p : n.state) { if (((p.isFirst() || p.isLast()) && !force) || p.owner().name==null) { for(Node n2 : n.parents()) @@ -44,7 +46,7 @@ public class ParseFailed extends RuntimeException { } return ANSI.purple(ret.toString()); } - public static String error(String message, Token token, Iterable nodes) { + public static String error(String message, Object token, Iterable nodes) { String lookAhead = token==null ? "" : token.toString(); StringBuffer ret = new StringBuffer(); ret.append("\n ");