/** * This is a weird idea - take the object in question, decide what is possible for it, and then * return whether or not it matches its own possibility list. */ @Override public boolean matchUnscoped(SchemeObject toTry) { for (SchemeObject p : getPossible(toTry)) { if (p.getString().equals(toTry.getString())) { return true; } } return false; }
@Override public Set<SchemeSymbol> getPossible(SchemeObject owner) { List<SchemeEnv.VariableDeclaration> vd = parent.getVarDecl(owner.getParent(), definedAs); // System.out.println(vd); Set<SchemeSymbol> possible = new HashSet<SchemeSymbol>(vd.size()); for (SchemeEnv.VariableDeclaration v : vd) { possible.add(v.decl); } return possible; }