X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fedu%2Fberkeley%2Fsbp%2Fchr%2FCharParser.java;h=b5e6dfcda264b6a68f91fdaa15db9d5cf68cbdfd;hb=3ee451bce342d4bb61ad6235ba57bdf817bfdd1a;hp=b3ba6cb7463c80a31dd3f597723af8f716e2a034;hpb=a7ba8d8a5f0cb7fbb5bf67f1a95f1cad5226c507;p=sbp.git diff --git a/src/edu/berkeley/sbp/chr/CharParser.java b/src/edu/berkeley/sbp/chr/CharParser.java index b3ba6cb..b5e6dfc 100644 --- a/src/edu/berkeley/sbp/chr/CharParser.java +++ b/src/edu/berkeley/sbp/chr/CharParser.java @@ -1,3 +1,5 @@ +// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license + package edu.berkeley.sbp.chr; import java.io.*; import java.util.*; @@ -12,11 +14,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, 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; } }