+// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
+
package edu.berkeley.sbp;
import edu.berkeley.sbp.*;
import edu.berkeley.sbp.util.*;
public Walk() { this(null); }
public Walk(Cache c) { this.c = c; }
- public T sequence(Sequence s) {
+ public T walkSequence(Sequence s) {
T ret = bottom(s);
for(Position p = s.firstp(); p!=null && !p.isLast(); p = p.next())
ret = sequence(s, ret, walk(p.element()));
protected T walk2(SequenceOrElement e) {
if (e instanceof Atom) return walkAtom((Atom)e);
- else if (e instanceof Sequence) return sequence((Sequence)e);
+ else if (e instanceof Sequence) return walkSequence((Sequence)e);
else if (e instanceof Union) {
T ret = bottom(e);
for(Sequence s : (Union)e) {
public final HashSet<SequenceOrElement> walk() { return walk(e); }
public YieldSet(SequenceOrElement e, Cache c) { super(c); this.e = e; }
public HashSet<SequenceOrElement> bottom(SequenceOrElement e) { return acc; }
- public HashSet<SequenceOrElement> sequence(Sequence seq) { return bottom(seq); }
+ public HashSet<SequenceOrElement> walkSequence(Sequence seq) { return bottom(seq); }
public HashSet<SequenceOrElement> walkAtom(Atom r) {
c.atoms.put(e, c.atoms.get(e)==null ? r : c.atoms.get(e).union(r));
return super.walkAtom(r);
static class First<Tok extends Input> extends WalkTokenSet<Tok> {
public First(Topology<Tok> cs, Walk.Cache cache) { super(cs, cache); }
- public Topology<Tok> sequence(Sequence seq) {
+ public Topology<Tok> walkSequence(Sequence seq) {
for(Position p = seq.firstp(); p!=null && !p.isLast(); p = p.next()) {
walk(p.element());
if (!c.possiblyEpsilon(p.element())) break;
private final HashSet<SequenceOrElement> all;
private boolean eof = false;
public boolean includesEof() { return eof; }
- public Follow(Topology<Tok> cs, SequenceOrElement me, HashSet<SequenceOrElement> all, Cache c) { super(cs, c); this.me = me; this.all = all; }
+ public Follow(Topology<Tok> cs, SequenceOrElement me, HashSet<SequenceOrElement> all, Cache c) {
+ super(cs, c); this.me = me; this.all = all; }
public Topology<Tok> bottom(SequenceOrElement e) { return cs; }
- public Topology<Tok> sequence(Sequence seq) { return cs; }
+ public Topology<Tok> walkSequence(Sequence seq) { return cs; }
public Topology<Tok> walkAtom(Atom r) { return walk((SequenceOrElement)r); }
public Topology<Tok> walk(SequenceOrElement e) {
if (acc.contains(e)) return bottom(e);