Mercurial > hg > Applications > JavaLite
changeset 12:4166ca6b8194
Scanner Tester
author | kono |
---|---|
date | Thu, 27 Dec 2007 19:03:14 +0900 |
parents | 20d8d946cba2 |
children | 8dec1859a948 |
files | Changes src/lite/ChopSolver.java src/lite/EmptySolver.java src/lite/ExistsSolver.java src/lite/ITLNodeParser.java src/lite/ITLNodeScanner.java src/lite/ITLSolverTest.java src/lite/NextSolver.java |
diffstat | 8 files changed, 77 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/Changes Thu Dec 27 00:40:28 2007 +0900 +++ b/Changes Thu Dec 27 19:03:14 2007 +0900 @@ -1,3 +1,9 @@ +Thu Dec 27 00:47:45 JST 2007 + +あぁ、なんか、はまりすぎ。ITLのparserだけで、まだ、 +かなりかかりそう。で、その後に、展開器と、状態の +格納か。そういえば、JBDDってのがあったはずだが... + Thu Dec 20 12:53:23 JST 2007 Boolean Satisfier は出来ました。
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lite/ChopSolver.java Thu Dec 27 19:03:14 2007 +0900 @@ -0,0 +1,17 @@ +package lite; + +public class ChopSolver extends ITLSolver { + + private ITLSolver former; + private ITLSolver later; + + public ChopSolver(ITLSolver former, ITLSolver later) { + this.former = former; + this.later = later; + } + + public String toString() { + return "("+former+" & "+later+")"; + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lite/EmptySolver.java Thu Dec 27 19:03:14 2007 +0900 @@ -0,0 +1,8 @@ +package lite; + +public class EmptySolver extends ITLSolver { + + public String toString() { + return "empty"; + } +}
--- a/src/lite/ExistsSolver.java Thu Dec 27 00:40:28 2007 +0900 +++ b/src/lite/ExistsSolver.java Thu Dec 27 19:03:14 2007 +0900 @@ -22,7 +22,7 @@ } public String toString() { - return "exists("+var+","+node+")"; + return "exists("+var+",("+node+"))"; } @Override
--- a/src/lite/ITLNodeParser.java Thu Dec 27 00:40:28 2007 +0900 +++ b/src/lite/ITLNodeParser.java Thu Dec 27 19:03:14 2007 +0900 @@ -3,11 +3,16 @@ import logicNode.parser.Dictionary; import logicNode.parser.LogicNodeScope; import logicNode.parser.MacroNodeParser; +import logicNode.parser.Token; +import logicNode.parser.TokenID; public class ITLNodeParser<Node> extends MacroNodeParser<Node> { public ITLNodeFactoryInterface<Node> logicNodeFactory; public ITLNodeScanner<Node> scanner; + private Token<Node> chopToken; + private Token<Node> atToken; + private Token<Node> emptyToken; public ITLNodeParser(ITLNodeFactoryInterface<Node> lf) { this(); @@ -30,5 +35,9 @@ scope = new LogicNodeScope<Node>(dict); initReservedWord(); scanner = new ITLNodeScanner<Node>(dict); + + chopToken = dict.reserve("&",TokenID.Chop); + atToken = dict.reserve("@",TokenID.Next); + emptyToken = dict.reserve("empty",TokenID.Empty); } }
--- a/src/lite/ITLNodeScanner.java Thu Dec 27 00:40:28 2007 +0900 +++ b/src/lite/ITLNodeScanner.java Thu Dec 27 19:03:14 2007 +0900 @@ -4,12 +4,9 @@ import logicNode.parser.Dictionary; import logicNode.parser.LogicNodeScanner; -import logicNode.parser.Token; public class ITLNodeScanner<Node> extends LogicNodeScanner<Node> { - private Token<Node> chopToken; - private Token<Node> atToken; /* @@ -29,13 +26,11 @@ "\\<\\-\\>|def" ); public final static Pattern namePat = Pattern.compile("[a-zA-Z]\\w*"); - public final static Pattern intPat = Pattern.compile("[-+]*[0-9]+"); public ITLNodeScanner(Dictionary<Node> dict) { super(dict); - chopToken = dict.reserve("&"); - atToken = dict.reserve("@"); } + }
--- a/src/lite/ITLSolverTest.java Thu Dec 27 00:40:28 2007 +0900 +++ b/src/lite/ITLSolverTest.java Thu Dec 27 19:03:14 2007 +0900 @@ -1,12 +1,21 @@ package lite; +import logicNode.parser.Dictionary; +import logicNode.parser.Token; + public class ITLSolverTest { static ITLNodeParser<ITLSolver> p; + static ITLNodeScanner<ITLSolver> scan; public static void main(String arg[]) { ITLNodeFactory lf = new ITLNodeFactory(); + + initScanner(); + + + p = new ITLNodeParser<ITLSolver>(lf); System.out.println(p.parse("p & q")); @@ -22,6 +31,18 @@ sat("true"); } + public static void initScanner() { + Dictionary<ITLSolver> dict = new Dictionary<ITLSolver>(); + scan = new ITLNodeScanner<ITLSolver>(dict); + } + + public static void scan(String exp) { + for(Token<ITLSolver> t : scan.scanToken(exp)) { + System.out.print(t+" "); + } + System.out.println(); + } + public static void sat(String expr) { ITLSolver n; n = p.parse(expr);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lite/NextSolver.java Thu Dec 27 19:03:14 2007 +0900 @@ -0,0 +1,14 @@ +package lite; + +public class NextSolver extends ITLSolver { + + ITLSolver node; + public NextSolver(ITLSolver node) { + this.node = node; + } + + public String toString() { + return "@("+node+")"; + } + +}