X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fchr%2FCharParser.java;h=c901388643a37eb8f2c11243381dd40717751fab;hp=657afaf96c7bb2d65ed1a67394836b3846421d5f;hb=2c1c0293545f3d12c23220fd05c663e6aa3f3de1;hpb=b318adb49d46a596314d7b7c0dd9f52681abb449 diff --git a/src/edu/berkeley/sbp/chr/CharParser.java b/src/edu/berkeley/sbp/chr/CharParser.java index 657afaf..c901388 100644 --- a/src/edu/berkeley/sbp/chr/CharParser.java +++ b/src/edu/berkeley/sbp/chr/CharParser.java @@ -12,11 +12,17 @@ public class CharParser extends Parser { public Forest parse(InputStream is) throws IOException, ParseFailed { return super.parse(new CharInput(is)); } public Forest parse(Reader r) throws IOException, ParseFailed { return super.parse(new CharInput(r)); } + public Forest parse(String s) throws IOException, ParseFailed { return parse(new StringReader(s)); } public CharParser(Union u) { super(u, new CharTopology()); } - public Forest shiftToken(Character ct, Location loc) { - return Forest.create(loc, ct.toString(), null, null, false, false, null); + private Location oldloc; + + public Forest shiftToken(Character ct, Location newloc) { + if (oldloc==null) oldloc = newloc; + Forest ret = Forest.create(oldloc.createRegion(newloc), ct.toString(), null); + oldloc = newloc; + return ret; } }