|
From: notifies s. of c. c. <per...@li...> - 2007-02-09 17:25:12
|
Revision: 84
http://svn.sourceforge.net/perl-flat/?rev=84&view=rev
Author: estrabd
Date: 2007-02-09 09:16:21 -0800 (Fri, 09 Feb 2007)
Log Message:
-----------
added another pfa test
Modified Paths:
--------------
trunk/perl-flat/dev-scripts/test.sh
trunk/perl-flat/t/03-pregex-pfa.t
Added Paths:
-----------
trunk/perl-flat/dev-scripts/dfa.gdl
trunk/perl-flat/dev-scripts/dfa.png
trunk/perl-flat/dev-scripts/mindfa.gdl
trunk/perl-flat/dev-scripts/mindfa.png
trunk/perl-flat/dev-scripts/nfa.gdl
trunk/perl-flat/dev-scripts/nfa.png
trunk/perl-flat/dev-scripts/output.png
trunk/perl-flat/dev-scripts/pfa.gdl
trunk/perl-flat/dev-scripts/pfa.png
Added: trunk/perl-flat/dev-scripts/dfa.gdl
===================================================================
--- trunk/perl-flat/dev-scripts/dfa.gdl (rev 0)
+++ trunk/perl-flat/dev-scripts/dfa.gdl 2007-02-09 17:16:21 UTC (rev 84)
@@ -0,0 +1,72 @@
+graph: {
+display_edge_labels: yes
+
+node: { title:"0" shape:circle borderstyle: solid}
+node: { title:"1" shape:circle borderstyle: solid}
+node: { title:"2" shape:circle borderstyle: solid}
+node: { title:"3" shape:circle borderstyle: solid}
+node: { title:"4" shape:circle borderstyle: solid}
+node: { title:"5" shape:circle borderstyle: solid}
+node: { title:"6" shape:circle borderstyle: solid}
+node: { title:"7" shape:circle borderstyle: solid}
+node: { title:"8" shape:circle borderstyle: solid}
+node: { title:"9" shape:circle borderstyle: solid}
+node: { title:"10" shape:circle borderstyle: solid}
+node: { title:"11" shape:circle borderstyle: solid}
+node: { title:"12" shape:circle borderstyle: solid}
+node: { title:"13" shape:circle borderstyle: solid}
+node: { title:"14" shape:circle borderstyle: solid}
+node: { title:"15" shape:circle borderstyle: solid}
+node: { title:"16" shape:circle borderstyle: double bordercolor: red}
+
+edge: { source: "0" target: "1" label: "c" arrowstyle: line }
+edge: { source: "0" target: "2" label: "a" arrowstyle: line }
+edge: { source: "0" target: "3" label: "b" arrowstyle: line }
+edge: { source: "0" target: "4" label: "d" arrowstyle: line }
+edge: { source: "1" target: "5" label: "c" arrowstyle: line }
+edge: { source: "1" target: "6" label: "a" arrowstyle: line }
+edge: { source: "1" target: "7" label: "b" arrowstyle: line }
+edge: { source: "1" target: "8" label: "d" arrowstyle: line }
+edge: { source: "2" target: "5" label: "a" arrowstyle: line }
+edge: { source: "2" target: "6" label: "c" arrowstyle: line }
+edge: { source: "2" target: "9" label: "b" arrowstyle: line }
+edge: { source: "2" target: "10" label: "d" arrowstyle: line }
+edge: { source: "3" target: "5" label: "b" arrowstyle: line }
+edge: { source: "3" target: "7" label: "c" arrowstyle: line }
+edge: { source: "3" target: "9" label: "a" arrowstyle: line }
+edge: { source: "3" target: "11" label: "d" arrowstyle: line }
+edge: { source: "4" target: "5" label: "d" arrowstyle: line }
+edge: { source: "4" target: "8" label: "c" arrowstyle: line }
+edge: { source: "4" target: "10" label: "a" arrowstyle: line }
+edge: { source: "4" target: "11" label: "b" arrowstyle: line }
+edge: { source: "5" target: "5" label: "a,b,c,d" arrowstyle: line }
+edge: { source: "6" target: "5" label: "a,c" arrowstyle: line }
+edge: { source: "6" target: "12" label: "b" arrowstyle: line }
+edge: { source: "6" target: "13" label: "d" arrowstyle: line }
+edge: { source: "7" target: "5" label: "b,c" arrowstyle: line }
+edge: { source: "7" target: "12" label: "a" arrowstyle: line }
+edge: { source: "7" target: "14" label: "d" arrowstyle: line }
+edge: { source: "8" target: "5" label: "c,d" arrowstyle: line }
+edge: { source: "8" target: "13" label: "a" arrowstyle: line }
+edge: { source: "8" target: "14" label: "b" arrowstyle: line }
+edge: { source: "9" target: "5" label: "a,b" arrowstyle: line }
+edge: { source: "9" target: "12" label: "c" arrowstyle: line }
+edge: { source: "9" target: "15" label: "d" arrowstyle: line }
+edge: { source: "10" target: "5" label: "a,d" arrowstyle: line }
+edge: { source: "10" target: "13" label: "c" arrowstyle: line }
+edge: { source: "10" target: "15" label: "b" arrowstyle: line }
+edge: { source: "11" target: "5" label: "b,d" arrowstyle: line }
+edge: { source: "11" target: "14" label: "c" arrowstyle: line }
+edge: { source: "11" target: "15" label: "a" arrowstyle: line }
+edge: { source: "12" target: "5" label: "a,b,c" arrowstyle: line }
+edge: { source: "12" target: "16" label: "d" arrowstyle: line }
+edge: { source: "13" target: "5" label: "a,c,d" arrowstyle: line }
+edge: { source: "13" target: "16" label: "b" arrowstyle: line }
+edge: { source: "14" target: "5" label: "b,c,d" arrowstyle: line }
+edge: { source: "14" target: "16" label: "a" arrowstyle: line }
+edge: { source: "15" target: "5" label: "a,b,d" arrowstyle: line }
+edge: { source: "15" target: "16" label: "c" arrowstyle: line }
+edge: { source: "16" target: "5" label: "a,b,c,d" arrowstyle: line }
+}
+
+
Added: trunk/perl-flat/dev-scripts/dfa.png
===================================================================
(Binary files differ)
Property changes on: trunk/perl-flat/dev-scripts/dfa.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/perl-flat/dev-scripts/mindfa.gdl
===================================================================
--- trunk/perl-flat/dev-scripts/mindfa.gdl (rev 0)
+++ trunk/perl-flat/dev-scripts/mindfa.gdl 2007-02-09 17:16:21 UTC (rev 84)
@@ -0,0 +1,55 @@
+graph: {
+display_edge_labels: yes
+
+node: { title:"0" shape:circle borderstyle: solid}
+node: { title:"1" shape:circle borderstyle: solid}
+node: { title:"2" shape:circle borderstyle: solid}
+node: { title:"3" shape:circle borderstyle: solid}
+node: { title:"4" shape:circle borderstyle: solid}
+node: { title:"5" shape:circle borderstyle: solid}
+node: { title:"6" shape:circle borderstyle: solid}
+node: { title:"7" shape:circle borderstyle: solid}
+node: { title:"8" shape:circle borderstyle: solid}
+node: { title:"9" shape:circle borderstyle: solid}
+node: { title:"10" shape:circle borderstyle: solid}
+node: { title:"11" shape:circle borderstyle: solid}
+node: { title:"12" shape:circle borderstyle: solid}
+node: { title:"13" shape:circle borderstyle: solid}
+node: { title:"14" shape:circle borderstyle: solid}
+node: { title:"15" shape:circle borderstyle: double bordercolor: red}
+
+edge: { source: "0" target: "1" label: "c" arrowstyle: line }
+edge: { source: "0" target: "2" label: "a" arrowstyle: line }
+edge: { source: "0" target: "3" label: "b" arrowstyle: line }
+edge: { source: "0" target: "4" label: "d" arrowstyle: line }
+edge: { source: "1" target: "5" label: "a" arrowstyle: line }
+edge: { source: "1" target: "6" label: "b" arrowstyle: line }
+edge: { source: "1" target: "7" label: "d" arrowstyle: line }
+edge: { source: "2" target: "5" label: "c" arrowstyle: line }
+edge: { source: "2" target: "8" label: "b" arrowstyle: line }
+edge: { source: "2" target: "9" label: "d" arrowstyle: line }
+edge: { source: "3" target: "6" label: "c" arrowstyle: line }
+edge: { source: "3" target: "8" label: "a" arrowstyle: line }
+edge: { source: "3" target: "10" label: "d" arrowstyle: line }
+edge: { source: "4" target: "7" label: "c" arrowstyle: line }
+edge: { source: "4" target: "9" label: "a" arrowstyle: line }
+edge: { source: "4" target: "10" label: "b" arrowstyle: line }
+edge: { source: "5" target: "11" label: "b" arrowstyle: line }
+edge: { source: "5" target: "12" label: "d" arrowstyle: line }
+edge: { source: "6" target: "11" label: "a" arrowstyle: line }
+edge: { source: "6" target: "13" label: "d" arrowstyle: line }
+edge: { source: "7" target: "12" label: "a" arrowstyle: line }
+edge: { source: "7" target: "13" label: "b" arrowstyle: line }
+edge: { source: "8" target: "11" label: "c" arrowstyle: line }
+edge: { source: "8" target: "14" label: "d" arrowstyle: line }
+edge: { source: "9" target: "12" label: "c" arrowstyle: line }
+edge: { source: "9" target: "14" label: "b" arrowstyle: line }
+edge: { source: "10" target: "13" label: "c" arrowstyle: line }
+edge: { source: "10" target: "14" label: "a" arrowstyle: line }
+edge: { source: "11" target: "15" label: "d" arrowstyle: line }
+edge: { source: "12" target: "15" label: "b" arrowstyle: line }
+edge: { source: "13" target: "15" label: "a" arrowstyle: line }
+edge: { source: "14" target: "15" label: "c" arrowstyle: line }
+}
+
+
Added: trunk/perl-flat/dev-scripts/mindfa.png
===================================================================
(Binary files differ)
Property changes on: trunk/perl-flat/dev-scripts/mindfa.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/perl-flat/dev-scripts/nfa.gdl
===================================================================
--- trunk/perl-flat/dev-scripts/nfa.gdl (rev 0)
+++ trunk/perl-flat/dev-scripts/nfa.gdl 2007-02-09 17:16:21 UTC (rev 84)
@@ -0,0 +1,59 @@
+graph: {
+display_edge_labels: yes
+
+node: { title:"0" shape:circle borderstyle: solid}
+node: { title:"1" shape:circle borderstyle: solid}
+node: { title:"2" shape:circle borderstyle: solid}
+node: { title:"3" shape:circle borderstyle: solid}
+node: { title:"4" shape:circle borderstyle: solid}
+node: { title:"5" shape:circle borderstyle: solid}
+node: { title:"6" shape:circle borderstyle: solid}
+node: { title:"7" shape:circle borderstyle: solid}
+node: { title:"8" shape:circle borderstyle: solid}
+node: { title:"9" shape:circle borderstyle: solid}
+node: { title:"10" shape:circle borderstyle: solid}
+node: { title:"11" shape:circle borderstyle: solid}
+node: { title:"12" shape:circle borderstyle: double bordercolor: red}
+node: { title:"13" shape:circle borderstyle: solid}
+node: { title:"14" shape:circle borderstyle: solid}
+node: { title:"15" shape:circle borderstyle: solid}
+node: { title:"16" shape:circle borderstyle: solid}
+node: { title:"17" shape:circle borderstyle: solid}
+
+edge: { source: "0" target: "1" label: "epsilon" arrowstyle: line }
+edge: { source: "1" target: "2" label: "c" arrowstyle: line }
+edge: { source: "1" target: "3" label: "a" arrowstyle: line }
+edge: { source: "1" target: "4" label: "b" arrowstyle: line }
+edge: { source: "1" target: "5" label: "d" arrowstyle: line }
+edge: { source: "2" target: "6" label: "d" arrowstyle: line }
+edge: { source: "2" target: "14" label: "b" arrowstyle: line }
+edge: { source: "2" target: "17" label: "a" arrowstyle: line }
+edge: { source: "3" target: "7" label: "d" arrowstyle: line }
+edge: { source: "3" target: "15" label: "b" arrowstyle: line }
+edge: { source: "3" target: "17" label: "c" arrowstyle: line }
+edge: { source: "4" target: "8" label: "d" arrowstyle: line }
+edge: { source: "4" target: "14" label: "c" arrowstyle: line }
+edge: { source: "4" target: "15" label: "a" arrowstyle: line }
+edge: { source: "5" target: "6" label: "c" arrowstyle: line }
+edge: { source: "5" target: "7" label: "a" arrowstyle: line }
+edge: { source: "5" target: "8" label: "b" arrowstyle: line }
+edge: { source: "6" target: "9" label: "b" arrowstyle: line }
+edge: { source: "6" target: "13" label: "a" arrowstyle: line }
+edge: { source: "7" target: "10" label: "b" arrowstyle: line }
+edge: { source: "7" target: "13" label: "c" arrowstyle: line }
+edge: { source: "8" target: "9" label: "c" arrowstyle: line }
+edge: { source: "8" target: "10" label: "a" arrowstyle: line }
+edge: { source: "9" target: "11" label: "a" arrowstyle: line }
+edge: { source: "10" target: "11" label: "c" arrowstyle: line }
+edge: { source: "11" target: "12" label: "epsilon" arrowstyle: line }
+edge: { source: "13" target: "11" label: "b" arrowstyle: line }
+edge: { source: "14" target: "9" label: "d" arrowstyle: line }
+edge: { source: "14" target: "16" label: "a" arrowstyle: line }
+edge: { source: "15" target: "10" label: "d" arrowstyle: line }
+edge: { source: "15" target: "16" label: "c" arrowstyle: line }
+edge: { source: "16" target: "11" label: "d" arrowstyle: line }
+edge: { source: "17" target: "13" label: "d" arrowstyle: line }
+edge: { source: "17" target: "16" label: "b" arrowstyle: line }
+}
+
+
Added: trunk/perl-flat/dev-scripts/nfa.png
===================================================================
(Binary files differ)
Property changes on: trunk/perl-flat/dev-scripts/nfa.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/perl-flat/dev-scripts/output.png
===================================================================
(Binary files differ)
Property changes on: trunk/perl-flat/dev-scripts/output.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/perl-flat/dev-scripts/pfa.gdl
===================================================================
--- trunk/perl-flat/dev-scripts/pfa.gdl (rev 0)
+++ trunk/perl-flat/dev-scripts/pfa.gdl 2007-02-09 17:16:21 UTC (rev 84)
@@ -0,0 +1,29 @@
+graph: {
+display_edge_labels: yes
+
+node: { title:"0" shape:circle borderstyle: solid}
+node: { title:"1" shape:circle borderstyle: solid}
+node: { title:"2" shape:circle borderstyle: solid}
+node: { title:"3" shape:circle borderstyle: solid}
+node: { title:"4" shape:circle borderstyle: solid}
+node: { title:"5" shape:circle borderstyle: solid}
+node: { title:"6" shape:circle borderstyle: solid}
+node: { title:"7" shape:circle borderstyle: solid}
+node: { title:"8" shape:circle borderstyle: solid}
+node: { title:"9" shape:circle borderstyle: double bordercolor: red}
+
+edge: { source: "0" target: "1" label: "a" arrowstyle: line }
+edge: { source: "1" target: "9" label: "#lambda" arrowstyle: line }
+edge: { source: "2" target: "3" label: "b" arrowstyle: line }
+edge: { source: "3" target: "9" label: "#lambda" arrowstyle: line }
+edge: { source: "4" target: "5" label: "c" arrowstyle: line }
+edge: { source: "5" target: "9" label: "#lambda" arrowstyle: line }
+edge: { source: "6" target: "7" label: "d" arrowstyle: line }
+edge: { source: "7" target: "9" label: "#lambda" arrowstyle: line }
+edge: { source: "8" target: "0" label: "#lambda" arrowstyle: line }
+edge: { source: "8" target: "2" label: "#lambda" arrowstyle: line }
+edge: { source: "8" target: "4" label: "#lambda" arrowstyle: line }
+edge: { source: "8" target: "6" label: "#lambda" arrowstyle: line }
+}
+
+
Added: trunk/perl-flat/dev-scripts/pfa.png
===================================================================
(Binary files differ)
Property changes on: trunk/perl-flat/dev-scripts/pfa.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/perl-flat/dev-scripts/test.sh
===================================================================
--- trunk/perl-flat/dev-scripts/test.sh 2006-12-14 01:54:44 UTC (rev 83)
+++ trunk/perl-flat/dev-scripts/test.sh 2007-02-09 17:16:21 UTC (rev 84)
@@ -1,5 +1 @@
-perl pregex-to-pfa.pl "${1}"
-~/distfiles/aiSee/bin/aisee.bin -pngoutput pfa.png pfa.gdl
-~/distfiles/aiSee/bin/aisee.bin -pngoutput nfa.png nfa.gdl
-~/distfiles/aiSee/bin/aisee.bin -pngoutput dfa.png dfa.gdl
-~/distfiles/aiSee/bin/aisee.bin -pngoutput mindfa.png mindfa.gdl
+perl pre_compare.pl 'nop(abc)*hij&qrs(def)*klm' 'n(op(abc)*hij&qrs(def)*klm)+q(rs(def)*klm&nop(abc)*hij)'
Modified: trunk/perl-flat/t/03-pregex-pfa.t
===================================================================
--- trunk/perl-flat/t/03-pregex-pfa.t 2006-12-14 01:54:44 UTC (rev 83)
+++ trunk/perl-flat/t/03-pregex-pfa.t 2007-02-09 17:16:21 UTC (rev 84)
@@ -11,29 +11,30 @@
diag("This test will take a while..");
+diag("w&v..");
# w&w
my $PFA1 = FLAT::Regex::WithExtraOps->new('abc&def')->as_pfa();
my $PFA2 = FLAT::Regex::WithExtraOps->new('a(b(c&def)+d(ef&bc))+d(ef&abc)')->as_pfa();
-
my $DFA1 = $PFA1->as_nfa->as_min_dfa;
my $DFA2 = $PFA2->as_nfa->as_min_dfa;
is( ($DFA1->equals($DFA2)), 1 );
-# w&w*
+diag("w&v*..");
+# w&v*
$PFA1 = FLAT::Regex::WithExtraOps->new('abc&(def)*')->as_pfa();
$PFA2 = FLAT::Regex::WithExtraOps->new('(def)*(
- a(bc&(def)*)+
- d((efd)*ef&(abc))+
- d((efd)*&(abc))ef
- )')->as_pfa();
+ a(bc&(def)*)+
+ d((efd)*ef&(abc))+
+ d((efd)*&(abc))ef
+ )')->as_pfa();
$DFA1 = $PFA1->as_nfa->as_min_dfa;
$DFA2 = $PFA2->as_nfa->as_min_dfa;
is( ($DFA1->equals($DFA2)), 1);
-# w*&w*
+# w*&v*
# throws some weird warning from FA.pm when mimimizing, but passes still
#$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*&(def)*')->as_pfa();
#$PFA2 = FLAT::Regex::WithExtraOps->new('((abc+def)*(
@@ -43,24 +44,28 @@
# d((efd)*&(abc)*)ef
# )*)*')->as_pfa();
-#$DFA1 = $PFA1->as_nfa->as_min_dfa;
-#$DFA2 = $PFA2->as_nfa->as_min_dfa;
-# is( ($DFA1->equals($DFA2)), 1);
+$DFA1 = $PFA1->as_nfa->as_min_dfa;
+$DFA2 = $PFA2->as_nfa->as_min_dfa;
+ is( ($DFA1->equals($DFA2)), 1);
-# w*x&w*y
-$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*dx&(efg)*hy')->as_pfa(); #<--!
-$PFA2 = FLAT::Regex::WithExtraOps->new('(abc+efg)*(
- dx&(efg)*hy+
- hy&(abc)*dx+
- a(((bca)*bcdx)&((efg)*hy))+
- a(((bca)*)&((efg)*hy))bcdx+
- e(((fge)*fghy)&((abc)*dx))+
- e(((fge)*)&((abc)*dx))fghy
- )')->as_pfa();
+diag("w*x&v*y..");
+# w*x&v*y
+$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*dx&(efg)*hy')->as_pfa();
+$PFA2 = FLAT::Regex::WithExtraOps->new('(abc+efg)*( dx&(efg)*hy+
+ hy&(abc)*dx+
+ a(((bca)*bcdx)&((efg)*hy))+
+ a(((bca)*)&((efg)*hy))bcdx+
+ e(((fge)*fghy)&((abc)*dx))+
+ e(((fge)*)&((abc)*dx))fghy
+ )')->as_pfa();
$DFA1 = $PFA1->as_nfa->as_min_dfa;
$DFA2 = $PFA2->as_nfa->as_min_dfa;
+is( ($DFA1->equals($DFA2)), 1);
+$PFA1 = FLAT::Regex::WithExtraOps->new('nop(abc)*hij&qrs(def)*klm')->as_pfa();
+$PFA2 = FLAT::Regex::WithExtraOps->new('n(op(abc)*hij&qrs(def)*klm)+q(rs(def)*klm&nop(abc)*hij)')->as_pfa();
+
+$DFA1 = $PFA1->as_nfa->as_min_dfa;
+$DFA2 = $PFA2->as_nfa->as_min_dfa;
is( ($DFA1->equals($DFA2)), 1);
-
-__END__
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|