changeset 76:854477cf9aa9

*** empty log message ***
author kono
date Thu, 17 Jan 2008 03:45:54 +0900
parents 75c0ecc1f09a
children c92c9e11d525
files Changes src/lite/BDDSolver.java src/lite/ChopSolver.java src/lite/EmptySolver.java src/lite/FalseSolver.java src/lite/ITLSolver.java src/lite/MacroSolver.java src/lite/TrueSolver.java src/sbdd/SBDDFactory.java src/sbdd/SBDDSet.java src/sbdd/SBDDTest.java
diffstat 11 files changed, 36 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/Changes	Thu Jan 17 03:20:48 2008 +0900
+++ b/Changes	Thu Jan 17 03:45:54 2008 +0900
@@ -1,3 +1,9 @@
+Thu Jan 17 03:43:53 JST 2008
+
+order を出現順に直しました。
+
+BDDSolver は、ITLSolver と違うので、継承したらだめなのね。
+
 Wed Jan 16 14:32:09 JST 2008
 
 diag も書きましたが、テストする気がしない...
--- a/src/lite/BDDSolver.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/lite/BDDSolver.java	Thu Jan 17 03:45:54 2008 +0900
@@ -169,8 +169,11 @@
 	}
 
 	int order(ITLSolver a,ITLSolver b) {
+		/*
 		// should use hash? or more intelligent order
 		return a.toString().compareTo(b.toString());
+		*/
+		return a.order-b.order;
 	}
 	
 	public BDDSolver toSBDD(SBDDFactoryInterface sf) {
--- a/src/lite/ChopSolver.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/lite/ChopSolver.java	Thu Jan 17 03:45:54 2008 +0900
@@ -159,7 +159,6 @@
 	}
 
 	public boolean equals(Object o) {
-		if (o.hashCode()!=hashCode()) return false;
 		if (o.getClass()==this.getClass()) {
 			ChopSolver v = (ChopSolver)o;
 			return former.equals(v.former)&& later.equals(v.later);
--- a/src/lite/EmptySolver.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/lite/EmptySolver.java	Thu Jan 17 03:45:54 2008 +0900
@@ -1,11 +1,16 @@
 package lite;
 
+import parser.TokenID;
 import sbdd.SBDDFactoryInterface;
 import verifier.Backtrack;
 
 public class EmptySolver extends ITLSolver {
 
 	String name = "empty";
+
+	public EmptySolver() {
+		order = TokenID.Empty.hash;
+	}
 	
 	public String toString() {
 		return name;
--- a/src/lite/FalseSolver.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/lite/FalseSolver.java	Thu Jan 17 03:45:54 2008 +0900
@@ -6,6 +6,10 @@
 
 public class FalseSolver extends ITLSolver {
 
+	public FalseSolver() {
+		order = TokenID.False.hash;
+	}
+	
 	@Override
 	public ITLSolver sat(ITLSatisfier sat, Continuation next) throws Backtrack {
 		return next.sat(null);
--- a/src/lite/ITLSolver.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/lite/ITLSolver.java	Thu Jan 17 03:45:54 2008 +0900
@@ -12,6 +12,7 @@
 	
 	public boolean value;
 	public int hash=-1;
+	public int order=-1;
 	
 	public ITLSolver sat(ITLSatisfier sat, Continuation next) throws Backtrack {
 		return null;
--- a/src/lite/MacroSolver.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/lite/MacroSolver.java	Thu Jan 17 03:45:54 2008 +0900
@@ -15,8 +15,6 @@
 	private String body;
 	private MacroNodeParserInterface<ITLSolver> parser;
 	private Command<ITLSolver> command;
-	public int order;
-
 
 	public MacroSolver(ITLSolver macro, String body, int order,
 			Command<ITLSolver> command,
--- a/src/lite/TrueSolver.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/lite/TrueSolver.java	Thu Jan 17 03:45:54 2008 +0900
@@ -6,11 +6,14 @@
 
 public class TrueSolver extends ITLSolver {
 
+	public TrueSolver() {
+		order = TokenID.True.hash;
+	}
+
 	@Override
 	public ITLSolver sat(ITLSatisfier sat, Continuation next) throws Backtrack {
 		return next.sat(sat.true_);
 	}
-
 	
 	public String toString() {
 		return "true";
--- a/src/sbdd/SBDDFactory.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/sbdd/SBDDFactory.java	Thu Jan 17 03:45:54 2008 +0900
@@ -12,10 +12,10 @@
 
 	public static final ITLSolver trueSolver   = new BDDSolver(ITLNodeFactory.trueSolver,BDDID.True,TokenID.True.hash);
 	public static final ITLSolver falseSolver  = new BDDSolver(ITLNodeFactory.falseSolver,BDDID.False,TokenID.False.hash);
-	public static final ITLSolver chopSolver   = new BDDSolver(BDDID.Chop,TokenID.Chop.hash);
-	public static final ITLSolver existsSolver = new BDDSolver(BDDID.Exists,TokenID.Exists.hash);
-	public static final ITLSolver nextSolver   = new BDDSolver(BDDID.Next,TokenID.Next.hash);
-	public static final ITLSolver projSolver   = new BDDSolver(BDDID.Projection,TokenID.Projection.hash);
+	//public static final ITLSolver chopSolver   = new BDDSolver(BDDID.Chop,TokenID.Chop.hash);
+	//public static final ITLSolver existsSolver = new BDDSolver(BDDID.Exists,TokenID.Exists.hash);
+	//public static final ITLSolver nextSolver   = new BDDSolver(BDDID.Next,TokenID.Next.hash);
+	//public static final ITLSolver projSolver   = new BDDSolver(BDDID.Projection,TokenID.Projection.hash);
 	public static final ITLSolver emptySolver  = new BDDSolver(ITLNodeFactory.emptySolver,trueSolver,falseSolver,BDDID.BDD);
 	public SBDDSet hash;
 	ITLNodeFactory itlf;
@@ -31,11 +31,11 @@
 		
 		hash.put(falseSolver);
 		hash.put(trueSolver);
-		hash.put(existsSolver);
-		hash.put(nextSolver);
-		hash.put(chopSolver);
+		//hash.put(existsSolver);
+		//hash.put(nextSolver);
+		//hash.put(chopSolver);
 		hash.put(emptySolver);
-		hash.put(projSolver);
+		//hash.put(projSolver);
 	}
 	
 
--- a/src/sbdd/SBDDSet.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/sbdd/SBDDSet.java	Thu Jan 17 03:45:54 2008 +0900
@@ -16,6 +16,7 @@
 	public Object lastEntry;
 	SBDDFactory sf;
 	int size = 0;
+	private int order = 10;
 
 	SBDDSet() {
 		sbddArray = new SBDDEntry [hashSize];
@@ -89,6 +90,8 @@
 		sbddArray[hash%hashSize] = (SBDDEntry) e;
 		lastEntry = null;
 		e.getValue().id = size++;
+		ITLSolver var = ((BDDSolver)e.getKey()).var;
+		if (var.order==-1) var.order = order ++;
 		return true;
 	}
 
--- a/src/sbdd/SBDDTest.java	Thu Jan 17 03:20:48 2008 +0900
+++ b/src/sbdd/SBDDTest.java	Thu Jan 17 03:45:54 2008 +0900
@@ -16,10 +16,10 @@
 
 		SBDDTest test = new SBDDTest();
 		
-		//test.bddTest();
 		//test.satTest();
 		test.verifyTest();
 		//test.mainLoop();
+		test.bddTest();
 	}
 	
 	
@@ -41,6 +41,7 @@
 		bddTest("A?(x;(B?x:C)):false");
 		bddTest("A,x");
 		bddTest("x,A");
+		System.out.println(sf.hash);
 	}
 	
 	public void bddTest(String exp) {