protected Parser(Table<Tok> pt) { this.pt = pt; }
/** implement this method to create the output forest corresponding to a lone shifted input token */
- public abstract Forest<Result> shiftToken(Tok t, Input.Location loc);
+ public abstract Forest<Result> shiftToken(Input.Location oldloc, Tok t, Input.Location newloc);
public boolean helpgc = true;
current.newNode(null, Forest.leaf(null, null, null), pt.start, true);
int count = 1;
for(int idx=0;;idx++) {
+ Input.Location oldloc = loc;
loc = input.getLocation();
current.reduce();
- Forest forest = current.token==null ? null : shiftToken((Tok)current.token, loc);
+ Forest forest = current.token==null ? null : shiftToken(oldloc, (Tok)current.token, loc);
GSS.Phase next = gss.new Phase<Tok>(current, this, current, input.next(), loc, forest);
if (!helpgc) {
FileOutputStream fos = new FileOutputStream("out-"+idx+".dot");