Mercurial > hg > Applications > JavaLite
view src/lite/NextSolver.java @ 107:30e74062f06c continuation-removal
*** empty log message ***
author | kono |
---|---|
date | Sun, 20 Jan 2008 18:22:55 +0900 |
parents | 400185be1a60 |
children | b508608e3cce |
line wrap: on
line source
package lite; import parser.TokenID; import sbdd.SBDDFactoryInterface; public class NextSolver extends ITLSolver { ITLSolver node; public NextSolver(ITLSolver node) { this.node = node; } public String toString() { return "next("+node+")"; } public BDDSolver toSBDD(SBDDFactoryInterface sf) { return sf.nextNode(node.toSBDD(sf)).toSBDD(sf); } public boolean isModal() { return true; } public int hashCode() { if (hash!=-1) return hash; return hash = BDDSolver.NODEHASH(TokenID.Next.hash,node.hashCode(),0); } public boolean equals(Object o) { if (o.hashCode()!=hashCode()) return false; if (o.getClass()==this.getClass()) { NextSolver v = (NextSolver)o; return node.equals(v.node); } return false; } class NextSolver1 implements Next { Next next; NextSolver1(Next next) { this.next = next; } public ITLSolver next(ITLSatisfier sat, ITLSolver value) throws Backtrack { if (value==null) { return next.next(sat,node); // not empty case } else return next.next(sat,sat.true_); } } @Override public ITLSolver sat(ITLSatisfier sat, Next next) throws Backtrack { return sat.empty.sat(sat, new NextSolver1(next)); } }