X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FParseFailed.java;h=b6a05e0bd3b356b9754629b6ecce77304bf40a20;hp=31a3a56e8e19da65c899f2d59ea308ed9716a550;hb=dc9bb3a45ed306e2e35549076842b3e74efecb48;hpb=a8478f5ddfbfbc8d910d09f27163cbd55752d3b6 diff --git a/src/edu/berkeley/sbp/ParseFailed.java b/src/edu/berkeley/sbp/ParseFailed.java index 31a3a56..b6a05e0 100644 --- a/src/edu/berkeley/sbp/ParseFailed.java +++ b/src/edu/berkeley/sbp/ParseFailed.java @@ -39,10 +39,10 @@ public class ParseFailed extends Exception { if (p.element() == null) return false; if (!(p.element() instanceof Union)) return false; Union u = (Union)p.element(); - if (u.synthetic) return false; - if (u.name==null) return false; - if (u.name.length() == 0) return false; - char c = u.name.charAt(0); + if (u.isSynthetic()) return false; + if (u.getName()==null) return false; + if (u.getName().length() == 0) return false; + char c = u.getName().charAt(0); return (c >= 'A' && c <= 'Z'); } @@ -50,8 +50,11 @@ public class ParseFailed extends Exception { if (count <= 0) { barf(sb, n, indent, skip, loc); } else { + /* + FIXME: removed for(Node nn : (Iterable)n.parents()) barf(sb, nn, indent, skip, count-1, n.phase().getLocation()); + */ } } static void barf(HashMap sb, Node n, int indent, boolean skip, Input.Location loc) { @@ -80,9 +83,9 @@ public class ParseFailed extends Exception { /* else if (p.pos-raise > 0) barf(sb, n, indent, false, 1); - */ - if (!new Walk.Cache().possiblyEpsilon(p.element())) + if (!new Cache(null, null).possiblyEpsilon(p.element())) break; + */ p = p.next(); raise++; if (p.isLast()) { @@ -105,8 +108,13 @@ public class ParseFailed extends Exception { //if (!p.isLast() && !p.next().isLast()) continue; if (((p.isFirst() || p.isLast()) && !force)/* || p.owner().name==null*/ || !important(p)) { + /* + FIXME: removed for(Node n2 : n.parents()) - complain(n2, errors, force /*| p.isFirst()*/, indent); + complain(n2, errors, force + //| p.isFirst() + , indent); + */ } else { String seqname = p.owner()/*.name*/+""; HashSet hs = errors.get(seqname); @@ -130,6 +138,10 @@ public class ParseFailed extends Exception { return ANSI.purple(ret.toString()); } + static void error(String message, GSS.Phase phase) throws ParseFailed { + error(message, phase.getLocation(), phase.getToken(), + phase, phase.getRegion(), phase.getGSS().getInput(), phase.getGSS()); + } static void error(String message, Input.Location loc, Object token, @@ -151,15 +163,15 @@ public class ParseFailed extends Exception { ret.append('\n'); ret.append(" text: "); int budget = 60; - String second = input.showRegion(region); + String second = input.showRegion(region, 60); budget -= second.length(); Input.Location after = region.getEnd(); for(int i=0; i<10; i++) after = after.next() == null ? after : after.next(); - String third = input.showRegion(region.getEnd().createRegion(after)); + String third = input.showRegion(region.getEnd().createRegion(after), 60); budget -= third.length(); Input.Location before = region.getStart(); for(int i=0; i